1、输出0~999中的水仙花数
/*在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。 例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数: 153 = 1^3 + 5^3 + 3^3。 370 = 3^3 + 7^3 + 0^3。 371 = 3^3 + 7^3 + 1^3。 407 = 4^3 + 0^3 + 7^3。*/
#include<stdio.h>
#include<windows.h>
#include<math.h>
int main()
{
int i, a, b, c, a1;
for (i = 0; i <= 999; i++)
{
for (i = 0; i <= 9; i++)//一位数,则是一次方
{
printf("%d\n", i);
}
for (i = 10; i <= 99; i++)//二位数,则是二次方
{
if (pow((i / 10), 2) + pow((i % 10), 2) == i)
{
printf("%d\n", i);
}
}
for (i = 100; i <= 999; i++)//三位数,则是三次方
{
a1 = i % 100;//取个位和十位
a = i / 100;//取百位
b = a1 / 10;//取十位
c = a1 % 10;//取个位
if (pow(a, 3) + pow(b, 3) + pow(c, 3) == i)
{
printf("%d\n", i);
}
}
}
system("pause");
return 0;
}
2、输出菱形图案
#include<stdio.h>
#include<windows.h>
int main()
{
int i, j, k;
for (i = 1; i <= 13; i += 2)//输出图案前七行*的个数分别为1、3、5、7、9、11、13
{
for (j = (13 - i) / 2; j >= 1; j--)//输出前七行空格
{
printf(" ");
}
for (k = 1; k <= i; k++)//输入每行的*
{
printf("*");
}
printf("\n");
}
for (i = 11; i >= 1; i -= 2)//后六行*的个数分别为11、9、7、5、3、1
{
for (j = (13 - i) / 2; j >= 1; j--)//先输出后六行空格
{
printf(" ");
}
for (k = i; k >= 1; k--)//输出后六行的*
{
printf("*");
}
printf("\n");
}
system("pause");
return 0;
}