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次方和。
两种方法从循环次数来说是一样的,前者实施起来较为简便。
程序代码如下:
#includevoid 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("%3d ",m1); /*输出满足水仙花条件的数*/
}
printf("\n");
}
程序运行结果:
水仙花数有:
153 370 371 407
C趣味程序(二)(09)三位水仙花数.doc
下载Word文档到电脑,方便收藏和打印[全文共617字]
编辑推荐:
下载Word文档