
1、首先需要打开Dev-c++软件,点击“新建源代码”。
2、然后按照如图所示填写代码。
3、其中:a表示的是水仙花数的百位数,b表示的是水仙花数的十位数,c表示的是水仙花数的个位数,sum表示的是所有累加下来的水仙花数。
4、if(sum==a*a*a+b*b*b+c*c*c)这一个程序步骤的作用是在规定查找的范围内找到符合这个条件的数。
5、注意a,b,c,sum的运算过程都是要在for 循环内完成,不可以在外循环进行。
6、而且还要注意区分在赋予百位数、十位数、个位数的计算用的“/","%”的区别,“/”表示除后取整数,“%”表示除后取余数。
7、最后点击“运行”即可得出要找的结果了。
水仙花数即三位的自幂数。所谓自幂数,就是指一个 n 位数 ( n≥3 ),其每位上的数字的 n 次幂之和等于本身。所以水仙花数,首先是三位数,形式为abc,同时a,b,c的立方和值与原本数相同。
类似的还有
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
等等。
对于水仙花数的判断,需要按照以下步骤:
1 提取该数的个位,十位,百位值。
2 计算三个数的立方和。
3 与原值比较,如相等则是。
要输出所有水仙花数,需要:
1 对所有三位数,即100到999遍历;
2 对每个数判断是否为水仙花数,如是则退出。
当循环结束,所有的水仙花数就输出成功了。
代码如下:
int isNarcissistic(int n)
{
int a = n/100
int b = n/10%10
int c = n%10
return a*a*a + b*b*b + c*c*c == n
}
int main()
{
int i
for(i = 100i<1000i ++)
if(isNarcissistic(i)) printf("%d ",i)
}
输出结果如下:
153 370 371 407
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)