kill2345 发表于 2013-8-10 11:42

谭浩强书上的课后习题水仙花数,求解

本帖最后由 kill2345 于 2013-8-10 12:00 编辑

自学c,正在看谭浩强的《C程序设计》,遇到一个题不会,请教{:soso_e183:}
       输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为
153=13+53+33。

wangzheng3056 发表于 2013-8-10 11:59

赶快上来抢点体力!

wangzheng3056 发表于 2013-8-10 12:00

楼主试试, 你可以任意输入n个数,只要不超出int型的范围就行了#include<stdio.h>
int pow(int x,int y)
{
    int num=1,i;
    for(i=0;i<y;i++)
    {
        num *= x;
    }
    return num;   
}
void main()
{
    int num,temp,i,count=1,number;
    int temp1;
    scanf("%d",&num);
    number = num;
    for(i = 10 ; num/i ; i*=10)//记录一下num的位数
    {count++;}
    //将number所有位数分离
    temp = pow(num%10,count);
    for(i = count -1 ; i>0 ; i-- )
    {   
        temp1 = num / pow(10,i);
        temp += pow(temp1,count);
        num = num - pow(10,i)* (num / pow(10,i));
    }
     if(temp == number)
     printf("yes");
     else
     printf("no");
}

wangzheng3056 发表于 2013-8-10 12:01

太高兴了,总算有人进来问问题了

wangzheng3056 发表于 2013-8-10 12:01

刷屏程序开始

wangzheng3056 发表于 2013-8-10 12:02

刷频,刷频,刷屏

magic2728 发表于 2013-8-10 17:29

三层循环,三个数位分别从0~9,注意排除非三位数情况,验证结果是否符合就行了。楼主自己敲一下代码吧,只有亲自动手才能发现问题的细节处,精妙处,加油!有不懂的欢迎再来提问!

ゞ★人才涛涛 发表于 2013-8-11 20:22

楼主要问的是什么

ゞ★人才涛涛 发表于 2013-8-11 20:22

撒旦发射点发速度发生的发打算

kill2345 发表于 2013-8-12 10:17

ゞ★人才涛涛 发表于 2013-8-11 20:22 static/image/common/back.gif
撒旦发射点发速度发生的发打算

难道楼上是来灌水的吗?:L
页: [1] 2
查看完整版本: 谭浩强书上的课后习题水仙花数,求解