搜索
查看: 761|回复: 5
打印 上一主题 下一主题

挑战题第一题,求大神指导一下!!!

[复制链接]
跳转到指定楼层
楼主
发表于 2014-3-23 23:07:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include<stdio.h>
#include<stdlib.h>
int main()
{
        int a,b,c,d,e;
        a=1;
        b=1;
        c=1;
        while(a<=10)
        {
                while(b<=a)
                {
                        while(c<=b)
                        {
                                d=a*100+b*10+c;
                                e=a*a*a+b*b*b+c*c*c;
                                if(d==e)
                                        printf("%d",d);
                                c++;
                        }
                        c=0;
                        b++;
                }
                a++;
                b=0;
                c=0;

        }
        system("pause");




}

沙发
 楼主| 发表于 2014-3-23 23:08:26 | 只看该作者
为什么输出来的是1000;哪里出错了 !!
板凳
发表于 2014-3-23 23:14:43 | 只看该作者
题解区也回复你了
这题目要做的是验证所有的3位数
可以尝试下面两种方法
1. 一个循环从100开始, 到999结束。然后取这个3位数的百位,十位,个位,然后进行验证。
2. 嵌套的三层循环,每一层都从0或1开始,到9结束,然后用三个循环的数字拼出一个3位数再进行验证
你上面代码用的是第二种方法,但是好像没理清思路
所以建议你先用第一种方法试试

点评

赞一个!这位说的对  发表于 2014-8-3 13:34
地板
发表于 2014-8-3 13:32:32 | 只看该作者
楼主的问题书上就有啊!代码如下:[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
int main()
{
        int x,a,b,c;
    for(x=100;x<=999;x++)
    {
    a=x/100;
    b=x/10%10;
    c=x%10;
    if(x==a*a*a+b*b*b+c*c*c)
    printf("%d\n",x);
    }
        system("pause");
        return 0;
}
[/mw_shl_code]

水仙花数(挑战第一题).c

242 Bytes, 下载次数: 0

5#
发表于 2014-8-3 13:33:26 | 只看该作者
我自己改了一个小地方
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表