| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1268 人关注过本帖
标题:求水仙花数
只看楼主 加入收藏
荣荣biu
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2013-6-3
结帖率:75%
收藏
 问题点数:0 回复次数:17 
求水仙花数
void main()
{
int m,a,b,c;
m=100;
while(m>=100&&m<1000)
{
a=m%10;//个位数
a=a*a*a;

c=m/100;//百位数
c=c*c*c;

b=(m-c*100)/10;//十位数
b=b*b*b;

if(m==a+b+c) printf("%5d\n",m);
m++;
}
}
求三位数中的水仙花数,输出结果就出现一个153,改了好久不出结果,哪位好心人给解答一下,这个问题出在那里了啊?
搜索更多相关主题的帖子: 水仙花 
2013-06-05 10:19
火雨流星泪
Rank: 2
等 级:论坛游民
帖 子:65
专家分:78
注 册:2013-5-12
收藏
得分:0 
没错啊,1+125+27=153啊
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)这是百度上的解释啊
2013-06-05 10:31
lijilvly
Rank: 2
等 级:论坛游民
帖 子:17
专家分:30
注 册:2013-6-3
收藏
得分:0 
哥们,你那m的十位数字表示错了!
b=(m-c*100)/10里面的C已经变了,c不是m的百位数字了

正确的应该是b=m/10%10

2013-06-05 10:34
lijilvly
Rank: 2
等 级:论坛游民
帖 子:17
专家分:30
注 册:2013-6-3
收藏
得分:0 
回复 2楼 火雨流星泪
100到1000 应该是4个  153,370,371,407,它只输出了1个
2013-06-05 10:35
火雨流星泪
Rank: 2
等 级:论坛游民
帖 子:65
专家分:78
注 册:2013-5-12
收藏
得分:0 
哦,厉害,真仔细
2013-06-05 10:36
火雨流星泪
Rank: 2
等 级:论坛游民
帖 子:65
专家分:78
注 册:2013-5-12
收藏
得分:0 
回复 楼主 荣荣biu
十位数的话试下这个
b=m%100/10
2013-06-05 10:37
华子hear
Rank: 3Rank: 3
来 自:陕西西安
等 级:论坛游侠
帖 子:57
专家分:104
注 册:2013-6-3
收藏
得分:0 
把abc的赋值语句放到if之前。逻辑上就对了。
2013-06-05 10:43
夜十天
Rank: 1
等 级:新手上路
帖 子:32
专家分:7
注 册:2013-5-8
收藏
得分:0 
#include "stdio.h"
void main()
{
   int i,a,b,c;
   for(i=100;i<=999;i++)
   {
       a=i/100;
       b=i%100/10;
       c=i%10;
       if(i==a*a*a+b*b*b+c*c*c)
       {
           printf("%d\n",i);
       }
   }
}
这是我以前写的代码,LZ,你看看我的代码。再看看你的代码。你就明白了。
2013-06-05 12:00
zhu_zhi
Rank: 2
来 自:广西百色
等 级:论坛游民
帖 子:129
专家分:92
注 册:2013-4-25
收藏
得分:0 
#include<stdio.h>
void main()
{
         int j;
        for(j=100;j<=999;j++)
        {
        int n,sum=0;;
        n=j;
        int i=1;
        while(n>0)
        {
        int y;
        y=n%10;
        sum=sum+y*y*y;
        n=(n-y)/10;
        i=i+1;
        }
        if(j==sum)printf("%d\n",j);
        }
        
}
2013-06-05 16:09
火雨流星泪
Rank: 2
等 级:论坛游民
帖 子:65
专家分:78
注 册:2013-5-12
收藏
得分:0 
void main()
{
int m,a,b,c;
m=100;
while(m>=100&&m<1000)
{
a=m%10;//个位数
a=a*a*a;

c=m/100;//百位数
c=c*c*c;

b=m%100/10;//十位数         就改了这句就可以了
b=b*b*b;

if(m==a+b+c) printf("%5d\t",m);
m++;
}
}
2013-06-05 16:51
快速回复:求水仙花数
数据加载中...
 
   



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

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