C趣味程序百例(07)阿姆斯特朗数 |
|
www.nanhushi.com 佚名 不详 |
23.阿姆斯特朗数 如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数)。 如 407=43+03+73就是一个阿姆斯特朗数。试编程求1000以内的所有阿姆斯特朗数。 *题目分析与算法设计 可采用穷举法,依次取1000以内的各数(设为i),将i的各位数字分解后,据阿姆斯特朗数的性质进行计算和判断。 *程序说明与注释 #include<stdio.h> void main() { int i,t,k,a[3]; printf("There are follwing Armstrong number smaller than 1000:\n"); for(i=2;i<1000;i++) /*穷举要判定的数i的取值范围2~1000*/ { for(t=0,k=1000;k>=10;t++) /*截取整数i的各位(从高向低位)*/ { a[t]=(i%k)/(k/10); /*分别赋于a[0]~a[2}*/ k/=10; } if(a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]==i) /*判断i是否为阿姆斯特朗数*/ printf("%5d",i); /*若满足条件,则输出*/ } printf("\n"); } *运行结果 There are following Armstrong number smaller than 1000: 153 370 371 407
|
|
|
文章录入:杜斌 责任编辑:杜斌 |
|
上一篇文章: C趣味程序百例(07)完全数 下一篇文章: C趣味编程百例(08)亲密数 |
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|