Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2538926
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2010-07-27 18:00:58

    打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身,例如:153 = 1*1*1 + 5*5*5 + 3*3*3。
    因为是三位数,因此我们可以想到,从100开始进行循环,然后将三位数的个位,十位,百位分解开来,然后进行各个位数的立方和看是否和原来的数是否相等,相等,则打印出来。代码如下:

#include <stdio.h>

int main(int argc,int *argv[])
{
    int n0,n1,n2;
    int i =100;
    do
    {
       n0 = i % 10;
       n1 = i % 100 / 10;
       n2 = i / 100;
       
       if (i == n0 * n0 * n0 + n1 * n1 * n1 + n2 * n2 * n2)
       {
          printf("%d = %d*%d*%d + %d*%d*%d + %d*%d*%d \n",i,n2,n2,n2,n1,n1,n1,n0,n0,n0);
       }
       i++;
    }while (i < 1000);
    
    system("pause");
    return 0;
}


经过程序运算,结果是水仙数的有:153,370,371,407。
阅读(1462) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~