A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wx_pNOonoEG 中级黑马   /  2015-7-17 21:50  /  1368 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

水仙花数:各个位数立方之和等于该整数的三位数

12 个回复

倒序浏览
#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
求解 ,我也有这个题,可毫无头绪

我把代码写上去了,你看一下,
主要利用了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
谢谢,我你这样说我好像知道了,真的很感谢

回复 使用道具 举报
likang 中级黑马 2015-7-17 22:08:20
7#
#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:31
8#
  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. }
复制代码
回复 使用道具 举报
谢谢,明白了
回复 使用道具 举报
我也想学习。。谢谢
回复 使用道具 举报
tingyuyisheng 发表于 2015-7-17 23:24
我也想学习。。谢谢

上面的代码 自己敲一遍试试,自己动手的话印象会很深刻,下次再看到,思路会很清晰的~
回复 使用道具 举报
#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:46
13#
#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");
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马