1. 程式人生 > >I00012 列印三位數的水仙花數及其個數

I00012 列印三位數的水仙花數及其個數

各個位數的立方數之和等於數本身的數,稱為水仙花數。

這裡使用窮舉法列印3位數的水仙花數。

程式的關鍵是如何取出給定數的各個位的值。

另外需要注意的一點是,求和變數的初值是零。乘積變數的初值則為1。


程式如下:

/* 列印三位數的水仙花數及其個數 */

#include <stdio.h>

int main(void)
{
    int sum=0, d1, d2, d3, i;

    for(i=100; i<= 999; i++) {
        d1 = i / 100;
        d2 = i % 100 /10;
        d3 = i % 10;
        if(d1 * d1 * d1 + d2 * d2 * d2 + d3 * d3 * d3 == i) {
            printf("%d\n", i);
            sum++;
        }
    }

    printf("sum=%d\n", sum);

    return 0;
}
執行結果:

153
370
371
407
sum=4