正文

[035] 水仙花数2006-03-12 19:46:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wentao/10941.html

分享到:

<谭> 6.6

打印出所有的"水仙花数", 所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。例如, 153就是一水仙花数,因为153 = 13+53+3

#include <stdio.h>
int main()
{
    int i, j, k; /* 分别表示百位,十位,个位 */
    int n;
    for (n = 100; n < 1000; n++)
    {
        i = n / 100;
        j = n / 10 - i * 10;
        k = n - i * 100 - j * 10;
        if (i*i*i + j*j*j + k*k*k == n)
            printf("%d ", n);
    }
    return 0;
}

运行结果:
======================
153 370 371 407
======================

######################################改进########################################

经网友指点,查了一下math.h中的pow函数

double pow(double a, double b)  即求 a 的 b 次方

修改如下:

#include <stdio.h>
#include <math.h>
int main()
{
    int i, j, k; 
    int n;
    for (n = 100; n < 1000; n++)
    {
        i = n / 100;
        j = n / 10 - i * 10;
        k = n - i * 100 - j * 10;
        if (pow(i, 3) + pow(j, 3) + pow(k, 3) == n)
            printf("%d ", n);
    }
    return 0;
}

运行结果:
======================
153 370 371 407
======================

阅读(9198) | 评论(10)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册