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;
}