C语言经典算法之水仙花数

    问题:打印出100到999所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

    方法:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

#include

int main()

{

    int num,sum = 0;

    int i,j,k;

    for(num = 100; num <= 999; num++)

    {

        i  = num / 100;               //取百位

        j  = num / 10 % 10;        //取十位

        k = num %10;                //取个位

        sum =  i * i * i + j * j * j + k * k * k;

        if(num == sum)              //判断各位数字的3次方之和是否等于原数字

            printf("数字%d为水仙花数\n",num);

    }

    return 0;

}

你可能感兴趣的:(C语言经典算法,C语言)