C语言:输出所有四位水仙花数,并输出四位水仙花数的个数。

C语言:输出所有四位水仙花数,并输出四位水仙花数的个数。水仙花数是指一个n位数(n>=3),它的每个位上的数字的n次幂之和等于它本身。(例如:1^3+5^3+3^3=15... C语言:输出所有四位水仙花数,并输出四位水仙花数的个数。水仙花数是指一个 n 位数(n>=3),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)。 展开
 我来答
yinfengnong
2018-04-16 · TA获得超过5619个赞
知道大有可为答主
回答量:2344
采纳率:89%
帮助的人:2297万
展开全部

代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>


int main()
{
int i, temp, n, sum, count = 0;

for (i = 1000; i <= 9999; i++) {

temp = i;

sum = 0;

while (temp != 0) {
n = temp % 10;
sum += (int)pow((double)n, 4);
temp /= 10;
}

if (sum == i) {
printf("%d ", i);
count++;
}
}

printf("\n四位数水仙数有 %d 个。\n", count);

system("pause");
return 0;
}

运行结果:

小坏tt诺言
2018-04-16 · 超过12用户采纳过TA的回答
知道答主
回答量:33
采纳率:85%
帮助的人:10.5万
展开全部
首先你需要引入头文件math.h;然后下面是代码:
int n=1000,num=0;        //num代表水仙花数个数
while(n<10000){
    int a,b,c,d;                    //分别存储个位、十位、百位、千位
    a=n%10;    b=n/10%10;    c=n/100%10;    d=n/1000%10;
    if(pow(a,4)+pow(b,4)+pow(c,4)+pow(d,4)==n){
        printf("%d\t",n)
        num++;
    }
    n++;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式