黑马程序员技术交流社区

标题: 用C语言求水仙花型的三位数 [打印本页]

作者: tingfeng1992    时间: 2015-6-21 20:57
标题: 用C语言求水仙花型的三位数
“水仙花数”是一个 各个位立方之和等于该整数的三位数。如果要求水仙花数,必须得求出百位数、十位数和个位数,这也是此程序的关键步骤。
1、求出百位数a=num\100
2、求出十位数b=(num%100)\10
3、求出个位数c=num%10
分别求出这三个数后就简单了很多,结下来利用for循环求出所有水仙书
代码如下:#include <stdio.h>
int main()
{
    int i=0;
    int a=0,b=0,c=0;
    for(i=0;i<1000;i++)
    {
        a=i\100;
        b=(i%100)\10;
        c=i%10
        if(a*a*a+b*b*b+c*c*c==i)
            printf("%d",i);
    }
    return 0;
}

作者: aSmallStone    时间: 2015-6-21 21:11
都说是三位数了  i怎么不从100开始呢  
作者: aSmallStone    时间: 2015-6-21 21:16
c=i%10后面少个;
作者: 小年轻不见了    时间: 2015-6-21 21:41
本帖最后由 小年轻不见了 于 2015-6-21 21:44 编辑

#include <stdio.h>  int main ()
{     
        int i,j = 0,ge,shi,bai;
       for (i = 100; i<1000; i++)
       {         
            bai = i/100;         
           shi = i/10%10;            
           ge = i%10;      
           if (ge*ge*ge+shi*shi*shi+bai*bai*bai == i)        
          {            
                j++;  
               printf("%d\n",i);        
          }
     }     
printf("%d\n",j);  
return 0;   
}

作者: tingfeng1992    时间: 2015-6-23 21:45
aSmallStone 发表于 2015-6-21 21:11
都说是三位数了  i怎么不从100开始呢

对,这点我忽略了
作者: tingfeng1992    时间: 2015-6-23 21:50
aSmallStone 发表于 2015-6-21 21:16
c=i%10后面少个;

对,可能是点错了删除了。
作者: tingfeng1992    时间: 2015-6-23 21:56
小年轻不见了 发表于 2015-6-21 21:41
#include   int main ()
{     
        int i,j = 0,ge,shi,bai;

你这个是正确, 我用 shi=(i/100)%10求十位数的数也没有错。我太逗比了, 除号都写错了、、
作者: tingfeng1992    时间: 2015-6-23 21:59
tingfeng1992 发表于 2015-6-23 21:56
你这个是正确, 我用 shi=(i/100)%10求十位数的数也没有错。我太逗比了, 除号都写错了、、 ...

搞错了,shi=(i%100)/10,源程序是这样写的,这种算法也没有错
作者: Fighting--BJ    时间: 2015-6-23 23:04
好样的,兄弟!加油!黑马再等着你!!!:victory:
作者: aSmallStone    时间: 2015-6-24 22:45
tingfeng1992 发表于 2015-6-23 21:45
对,这点我忽略了

:handshake
作者: aSmallStone    时间: 2015-6-24 22:46
tingfeng1992 发表于 2015-6-23 21:50
对,可能是点错了删除了。

多多交流。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2