黑马程序员技术交流社区

标题: 如何输出水仙花数 [打印本页]

作者: wx_pNOonoEG    时间: 2015-7-17 21:50
标题: 如何输出水仙花数
水仙花数:各个位数立方之和等于该整数的三位数
作者: wx_pNOonoEG    时间: 2015-7-17 21:55
#include <stdio.h>
int main( ){
  int m;
  for(int a=1;a<10;a++){
      for(int b=0;b<10;b++){
          for(int c=0;c<10;c++){
           m=a*a*a+b*b*b+c*c*c;
             if(m==(a*100+b*10+c))
               printf("%d\n",m)               
                       }
                          }  
                            }
}

作者: 爱马尚    时间: 2015-7-17 21:56
求解 ,我也有这个题,可毫无头绪
作者: wx_pNOonoEG    时间: 2015-7-17 22:01
爱马尚 发表于 2015-7-17 21:56
求解 ,我也有这个题,可毫无头绪

我把代码写上去了,你看一下,
主要利用了for语句,
其中a,b,c分别是百位,十位和个位上的数值
,因为说明了是三位数,所以a不能为0,
然后进行循环,把a*a*a+b*b*b+c*c*c的值赋值给m,
接着判断这个三位数即a*100+b*10+c的值和m值是否相等,
如果相等即为水仙花数,
printf将这个数输出
~~~~~~~~~希望对你有帮助~
作者: 爱马尚    时间: 2015-7-17 22:04
谢谢,我你这样说我好像知道了,真的很感谢
作者: wx_pNOonoEG    时间: 2015-7-17 22:07
爱马尚 发表于 2015-7-17 22:04
谢谢,我你这样说我好像知道了,真的很感谢


作者: likang    时间: 2015-7-17 22:08
#include <stdio.h> void main() {    int i,j,k,n;  printf("'water flower'number is:");  for(n=100;n<1000;n++)  {  i=n/100;/*分解出百位*/  j=n/10%10;/*分解出十位*/  k=n%10;/*分解出个位*/  if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)  {  printf("%-5d",n);  }  }  printf("\n");  }
作者: likang    时间: 2015-7-17 22:09
  1. #include <stdio.h>
  2. void main()
  3. {

  4. int i,j,k,n;
  5. printf("'water flower'number is:");
  6. for(n=100;n<1000;n++)
  7. {
  8. i=n/100;/*分解出百位*/
  9. j=n/10%10;/*分解出十位*/
  10. k=n%10;/*分解出个位*/
  11. if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
  12. {
  13. printf("%-5d",n);
  14. }
  15. }
  16. printf("\n");
  17. }
复制代码

作者: yongwei    时间: 2015-7-17 22:26
谢谢,明白了
作者: tingyuyisheng    时间: 2015-7-17 23:24
我也想学习。。谢谢
作者: wx_pNOonoEG    时间: 2015-7-19 01:21
tingyuyisheng 发表于 2015-7-17 23:24
我也想学习。。谢谢

上面的代码 自己敲一遍试试,自己动手的话印象会很深刻,下次再看到,思路会很清晰的~
作者: huyingbin    时间: 2015-7-19 02:06
#include <stdio.h>  int main(int argc, const char * argv[]) {     int count = 0,num,a,b,c;     for(num =100;num<=999;num++){         a = num / 100;         b = (num%100)/10;         c = num
作者: pacio    时间: 2015-7-19 11:24
#include <stdio.h>
void main()
{

int i,j,k,n;
printf("'water flower'number is:");
for(n=100;n<1000;n++)
{
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
{
printf("%-5d",n);
}
}
printf("\n");
}




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