永发信息网

用c语言写出在10000内的所有水仙花数

答案:2  悬赏:70  手机版
解决时间 2021-02-05 16:13
用c语言写出在10000内的所有水仙花数
最佳答案
下面是程序运行结果

下面是实现代码,您可以参考一下:
#include 

int m3(int n)
{
return (n*n*n);
}

int main()
{
int n,m;
int sum;
for(n=1;n<10000;n++)
{
sum = 0;
m = n;
while(m)
{
sum += m3(m%10);
m=m/10;
}
if(sum==n)
printf("number: %d
", n);
}
}追问谢谢 不好意思这么久才回你
全部回答
水仙花数具备“各位数字的位数次方和等于其自身”的性质。遍历1~10000之间可能有解的部分,先测出其数字的位数n,再分离数字的各位,求各位数字的n次方的和便是结果。具体操作可先将要判断的数字转换为数字字符串,这样求其位数和分离数位都极为方便。代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

#include "stdio.h"
#include "string.h"
#include "stdlib.h"
int main(int argc,char *argv[]){
int n,m,i,j,k,t;
char a[5];
printf("The results are as follows:\n");
for(i=1;i<10000;i++){//遍历1~10000部分数据
n=strlen(itoa(i,a,10));//转为数字字符串并计算长度(十进制数位数)n
for(m=j=0;a[j];j++){//分离每一位数字
for(t=1,k=0;k++ m+=t;//求各位数字n次方的和m
}
if(m==i){//判断是否为"水仙花"
printf("%5d = ",i);//是则输出结果
for(j=0;a[j];printf(j }
}
return 0;
}
试运行结果如下图:追问谢谢 不好意思这么久才回你
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
前衡鱼四村地址有知道的么?有点事想过去
两个路由器怎么样设成一样的名称密码
手机的服务密码是多少
如果有二套房,提前还贷先还第一套还是第二套
为什么小时候班里的女生夏天一个个都光脚穿凉
东衡鱼幸福村地址有知道的么?有点事想过去
开一个美甲店需要多少钱
水浒中的杨智是怎样一个人?
连云港基迈科环境科技有限公司这个地址在什么
鱼苗的意思是什么啊?知道的请说下!
斯柯达昕动自动挡会有顿挫感吗
旅店村地址好找么,我有些事要过去
【高手指点】 如果删除浏览器历史纪录时把表
皇帝有义子吗?
红庙村地址在什么地方,我要处理点事
推荐资讯
西程村地址在哪,我要去那里办事
住房公积金提取了但是还没到账又入职原公司了
iPhone6s plus关闭APP使用手机应用的方法
教堂里的牧师在一对新人面前的说的圣经里的哪
简算 3.64×4+6.36÷0.25 帮帮忙,我要过程
转轮的意思是什么啊?知道的请说下!
求个《九首歌》百度云完整版资源
顶赖号在哪里啊,我有事要去这个地方
请你分别输入-2,3,按图所表示的程序运算,
室内设计谈单中 怎样抓住一个客户的心理。
新疆兵团农三师四十四团学校地址在什么地方,
电线怎样接线才会烧坏灯
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?