说明。水仙花数是指一个三位数,它的每个位上的数字的三次幂之和等于它本身列如一的三次方加5的三次方加3的三次方等于153。
先分解出三位数的三位数字,然后立方后相加与该数进行比较就行了
void main()
{
for(int i=100;i<=999;i++)
{
int g = i%10;
int h = i/100;
int t = (i-g-h*100)/10;
if(i==(g*g*g + h*h*h + t*t*t))
printf("%d\n",i);
}
}
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
#include <stdio.h>
int main()
{
int i,j,k,n;
printf("parcissus numbers are ");
for (n=100;n<1000;n++)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if (n==i*i*i + j*j*j + k*k*k)
printf("%d ",n);
}
printf("\n");
return 0;
}
先分解出个位。十位,百个位的三个数,每个数各自相乘3次再相加与原数进行比较就可以了
输出结果
parcissus numbers are 153 370 371 407
嗬!我做的题管这叫阿姆斯特朗数。大致思路就是把三位数分解,分别算它们的幂相加,再与原数作比较。代码嘛,,,楼上的就很好了