C趣味程序(二)(09)三位水仙花数

文章作者 100test 发表时间 2007:03:10 17:38:59
来源 100Test.Com百考试题网


2.3 自方幂数
一个n位正整数如果等于它的n个数字的n次方和,该数称为n位自方幂数。
三位自方幂数又称水仙花数。
四位自方幂数又称玫瑰花数。
五位自方幂数又称五角星数。
六位自方幂数又称六合数。
试求出所有3~6位自方幂数。

2.3.1 三位水仙花数
1、算法分析
求自方幂数采用穷举判定法。求n位自方幂数,对所有n位整数一 一判定,如果其数字的n次方和等于它自身,则打印输出。
求n个数字的n次方和,常见有以下两种方法:
1)设置n重循环,每位数设置循环;最高位从1~9,其余各位数从0~9。n个数字的n次方的和即n个循环变量的n次方和。
2)从最小的n位数至最大的n位数循环,对每一个n位数分离其各个数字,然后求数字的n次方和。
两种方法从循环次数来说是一样的,前者实施起来较为简便。

程序代码如下:
#include
void main()
{
int i,j,k,m1,m2.
for(i=1.i<=9.i )
for(j=0.j<=9.j )
for(k=0.k<=9.k )
{
m1=i*100 j*10 k. /*m1为三个数字分别为i,j,k的三位数*/
m2=i*i*i j*j*j k*k*k. /*m2为三个数字的立方和*/
if(m1==m2) printf("= ",m1). /*输出满足水仙花条件的数*/
}
printf("\n").
}
程序运行结果:
水仙花数有:
153 370 371 407


相关文章


C趣味程序(二)(09)三位水仙花数
C趣味程序(二)(09)四位玫瑰花数
C趣味程序(二)(08)分解质因数乘积形式
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛