您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C语言 >> 辅导 >> 正文    
  C趣味程序百例(07)阿姆斯特朗数 【注册男护士专用博客】          

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

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目