C语言计算1000以内的水山花数,打印所有的水山花数出来

C语言计算1000以内的水山花数,打印所有的水山花数出来

http://blog.csdn.net/tian19930910/article/details/8170967

//    int d = 0;
//    for (int a = 1; a <= 9; a++) {
//        for (int b = 0; b <= 9; b++) {
//            for (int c = 0; c <= 9; c++) {
//                int abc = a*100+b*10+c;
//                if (abc == a*a*a+b*b*b+c*c*c) {
//                   printf("%d\n", abc);
//                    d++;
//                }
//            }
//        }
//    }
//    printf("sum = %d\n", d);

自动计算

 //水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身
char NarcissisticNumber(unsigned long v)
{
    char st = 0;
    unsigned char n = 0;
    unsigned long tval = 0;
    unsigned long sum = 0;
    if(v < 100)
        return st;
    //计算数据位数。
    tval = v;
    do 
    {
        if(tval != 0)
            n++;
        tval /= 10;
    } while (tval != 0);
    //计算每一位的n次方
    tval = v;
    do
    {
        sum += pow(tval % 10,n);
        tval /= 10;
    } while (tval != 0);

    //返回结果 0表示不是水仙花数,1表示是水仙花数
    if(sum == v)
        st = 1;
    return st;
}