大家帮忙看看这道水仙花数题啊
这是一道水仙花数的题但是这个水仙花数不止,不一定是三位的。
我本人苦思冥想仍无能为力。
请先生教我!!
水仙花数(daffodils number)是指一个 n 位数 ( n ≥ 3 ),它的每个位上的数字的 n 次幂之和等于它本身。
例如:1^3 + 5^3 + 3^3 = 153
有多个测试用例,每个测试用例占一行,是一个正整数n ( 3 ≤ n ≤ 6 )
对每个测试用例,从小到大输出所有n位的水仙花数,一个一行。
#include <stdio.h> int main( void ) { unsigned map[11][9]; for( unsigned n=0; n!=11; ++n ) { map[n][0] = 1; for( unsigned m=1; m!=9; ++m ) map[n][m] = map[n][m-1] * n; } for( unsigned n=100,m=3; n!=100000000; ++n ) { if( n >= map[10][m] ) ++m; unsigned sum = 0; for( unsigned t=n; t; t/=10 ) sum += map[t%10][m]; if( sum == n ) printf( "%u\n", n ); } return 0; }输出