C趣味程序(二)(09)三位水仙花数
来源:优易学  2010-1-14 12:13:35   【优易学:中国教育考试门户网】   资料下载   IT书店
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<stdio.h>
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("%3d  ",m1);    /*输出满足水仙花条件的数*/
            }
    printf("\n");
}
程序运行结果:
水仙花数有:
153  370  371  407

责任编辑:cyth

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训