题目链接:点击打开链接
题目大意:略。
解题思路:最大数 7 时,打表直接写答案;以及 pow 精度控制。
AC 代码
#include <stdio.h> #include <math.h> int n; int ok(int x) { int a, b, y=x, rs=0; while(x!=0) { a=x%10; x/=10; rs+=(int)(pow(a, n)+0.5); } return rs==y?1:0; } int main() { int cnt=0, t=1000000, from=1, to; scanf("%d", &n); if(n==7) { puts("1741725"); puts("4210818"); puts("9800817"); puts("9926315"); return 0; } while(t!=0) { t/=10; cnt++; if(cnt==n) break; else from*=10; } to=from*10; for(int i=from; i<to; i++) if(ok(i)) printf("%d\n", i); return 0; }