水仙花数
求出0~999999之间的所有“水仙花数”并输出。
思路:因为数的位数不同,不能按照3位的水仙花数那样求,我们先要求出数的位数,以便于最后进行运算,所以先用一个while循环来求出位数
while(tmp /10)
{
count++;
tmp = tmp/10;
}
得到位数之后,便要把数的每一位拿出来做次方运算,用一个while循环得到每一位再做pow(x,y)的运算
pow(x,y)表示x是运算数,y是次方数;如pow(2,3)表示2的3次方
while(tmp != 0)
{
sum += pow((double)(tmp%10),(double)count);
tmp = tmp/10;
}
总代码:
#include<stdio.h>
int main()
{
int i = 0;
for(i = 1;i <= 999999;i++)
{
//1、求i为几位数
int tmp = i;
int count = 0;
int sum = 0;
while(tmp /10)
{
count++;
tmp = tmp/10;
}
tmp = i;
//2、tmp的每一位求出 然后进行次方运算
while(tmp != 0) //123 123%10=3 12%10=2 1%10=1 1/