C语言 求出100~999之间的所有“水仙花数”并输出
来源:互联网 发布:js valueof 方法 编辑:程序博客网 时间:2024/05/16 05:55
“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。
例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数:
153 = 1^3 + 5^3 + 3^3。
370 = 3^3 + 7^3 + 0^3。
371 = 3^3 + 7^3 + 1^3。
407 = 4^3 + 0^3 + 7^3。
代码如下:
#include<stdio.h>int main(){int num,i,j,k;printf("0到999之间的所有水仙花数:");for(num=100;num<1000;num++){ i=num/100;/*求出百位数*/ j=num/10-i*10;/*求出十位数*/ k=num-i*100-j*10;/*求出个位数*/ if(i*i*i+j*j*j+k*k*k==num) { printf("%d ",num); }}return 0;}
上述方法求出一个数的每位数较麻烦,利用for循环对此进行改进。
代码如下:
#include<stdio.h>#include<math.h>int main(){int i;double sum;printf("输出0到999之间的所有水仙花数:\n");for(i=100;i<1000;i++){/*不可在循环体内修改循环变量,防止for循环失去控制*/int num=i;/*引入变量num*/for(sum=0;num!=0;num/=10){ sum+=pow(num%10,3);}if(sum==i)/*sum应与i比较,不是引入的变量num*/{printf("%d ",i);}}return 0;}
本文出自 “Scen” 博客,请务必保留此出处http://10741357.blog.51cto.com/10731357/1701845
1 0
- C语言 求出100~999之间的所有“水仙花数”并输出
- c语言:3种方法;求出0~999之间的所有“水仙花数”并输出。
- C语言:求出0~999之间的所有“水仙花数”并输出
- 求出0~999之间的所有“水仙花数”并输出
- 求出0~999之间的所有“水仙花数”并输出
- 求出0~999之间的所有“水仙花数”并输出
- 求出1~999之间的所有“水仙花数”并输出
- 求出0~999之间的所有“水仙花数”并输出
- 求出0~999之间的所有“水仙花数”并输出。
- 求出0~999之间的所有“水仙花数”并输出
- 求出0~999之间的所有“水仙花数”并输出。
- 求出0~999之间的所有“水仙花数”并输出。
- 【C语言】输出100~999之间的所有“水仙花数”
- 求出所有“水仙花数”并输出
- 求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其个位数字的立方和确好等于该数本身,如:153=1+5+3,则153是一个“水仙花数”。
- 求出0—999之间的所有“水仙花数”。
- 输出100-999之间所有的水仙花数
- 5.求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?1
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- AdapterView适配器
- 将两个数组中的内容进行交换(数组一样大)
- 编码(NRZ、NRZI、曼彻斯特、4B
- C语言 在屏幕上输出菱形图案
- C语言 求出100~999之间的所有“水仙花数”并输出
- 从两端动态输出一串字符
- 折半查找
- 编写猜数字游戏
- 标准输入每行,加行号输出
- 五人预测比赛结果均答对一半,求比赛名次
- 在屏幕上打印杨辉三角
- 创建一个数组,实现初始化、逆置和清空
- 棋盘游戏