| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1321 人关注过本帖
标题:求教“水仙花数 ”编程 谢谢
只看楼主 加入收藏
szh519579098
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-4-13
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:11 
求教“水仙花数 ”编程 谢谢

#include<stdio.h>
void main()
{
int i,j,k,n=i*100+j*10+k;
n>100&&n<999;
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
if((i*i+j*j+k*k)==n)
printf("%d",n);
}
这是我自己编的  不知道错在那里了……
搜索更多相关主题的帖子: 编程 谢谢 水仙花 
2013-04-14 17:19
勤能补拙
Rank: 2
等 级:论坛游民
帖 子:7
专家分:21
注 册:2013-4-14
收藏
得分:1 
你使用三个for循环的时候,九已经保证另了n是大于100,小于999的。
2013-04-14 18:13
久久钗
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2013-4-10
收藏
得分:3 
这个水仙花数不是比如说153=1*1*1+5*5*5+3*3*3吗?还有你这个n>100&&n<999是在while循环里的吧,不用三个for循环吧,一个就可以了
   for(int i=m;i<=n;i++)
    {
        t=i/100;
        k=(i%100)/10;
        g=i%10;
        if(i==t*t*t+k*k*k+g*g*g)
        {
            printf("%d",n);
        }
}
2013-04-14 18:48
szh519579098
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-4-13
收藏
得分:0 
回复 2楼 勤能补拙
恩,晓得了 谢谢了啊   但是就是把n>100&&n<999这句话去掉 也不对啊  程序逻辑对了  但结果不出
2013-04-14 19:01
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:3 
#include<stdio.h>
void main()
{
int i,j,k,n;
for(i=1;i<=9;i++)
   for(j=0;j<=9;j++)
      for(k=0;k<=9;k++)
        {
          n=i*100+j*10+k
          if((i*i*i+j*j*j+k*k*k)==n)
              printf("%d",n);
         }
}
这样就可以了
2013-04-14 19:11
冰辰
Rank: 2
来 自:安徽
等 级:论坛游民
帖 子:6
专家分:14
注 册:2013-3-23
收藏
得分:3 
#include "stdio.h"
#include "conio.h"
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);
}
getch();
}

少说话,多运行,多调试
2013-04-14 19:20
老李来了
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2013-3-8
收藏
得分:0 
水仙花数是各位数的立方和···
改了哈#include<stdio.h>
void main()
{
     int i,j,k,n=0;
     for(i=1;i<=9;i++)
     for(j=0;j<=9;j++)
     for(k=0;k<=9;k++)
        {
          n=i*100+j*10+k;
          if((i*i*i+j*j*j+k*k*k)==n)
          printf("%d   ",n);
        }
}
2013-04-14 23:05
czzdcn123
Rank: 7Rank: 7Rank: 7
来 自:江西
等 级:黑侠
威 望:3
帖 子:258
专家分:510
注 册:2013-3-7
收藏
得分:0 
呵呵
2013-04-14 23:28
郭祥
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2013-4-3
收藏
得分:0 
#include "stdio.h"
#include "conio.h"
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);
  }
}
你的程序的逻辑就是错的  首先就是你的最后水仙花的算法不正确,而且你的三个循环的结果是没有用的。最主要还是因为你没有弄明白水仙花的含义是什么。

[ 本帖最后由 郭祥 于 2013-4-14 23:37 编辑 ]
2013-04-14 23:30
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
收藏
得分:0 
楼上的说的很仔细了。首先水仙花是立方和的,这儿你弄错了。再者限制条件
多余了。可以注销。

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2013-04-15 08:03
快速回复:求教“水仙花数 ”编程 谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017991 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved