作业帮 > 综合 > 作业

编写一个求水仙花数的函数,求3位正整数的全部水仙花数中的次大值.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 09:31:01
编写一个求水仙花数的函数,求3位正整数的全部水仙花数中的次大值.
所谓水仙花数是指三位整数的各位上的数字的立方和等于该整数本身.例如:153就是一个水仙花数
这个我重装了系统win-tc就米了
修电脑的把我的硬盘全格式化了
我就在这里写 有错你告诉我
#include "stdio.h"
#define M 999
void main()
{
int a,b,c,i,flag = 0;
for(i = M;i > 99;i--)
{
a = i/100;/*百位数*/
b = (i%100)/10;/*十位数*/
c = i%10;/*个位数*/
if(a*a*a+b*b*b+c*c*c == i)
{
if(flag == 0)
flag++;
else
break;
}
}
printf("%d",i);
}
没有调试过 有错你就说 我看看
因为只要求次大值 就从999开始递减判断水仙花数 第一个一定是最大值了
这时flag++
到第二个的时候 就是次大值了
此时flag=1
跳出循环 输出此时的i
如果要加强严密性 就在最后输出的时候判断flag是=0还是=1
=0或者=1&&i==100说明无解
此题明显有解 我偷懒了下