不知道算不算冷门的知识:内建函数的速度比直接调用库函数快。
/*水仙花数*/
#include <stdio.h>
int pow(int a, int b);
int main() {
int n, digt, ret, sum = 0;
scanf("%d", &n);
for (int count = pow(10, n - 1) + 633; count < pow(10, n); count++) {
digt = count;
sum = 0;
for (int i = 1 ; i <= n; i++) {
ret = digt % 10;//用%10来抽出单个数
sum += pow(ret, n);
digt = digt / 10;
}
if (sum == count)
printf("%d\n", sum);
}
return 0;
}
int pow(int a, int b) {
int ret = a;
for (int i = 1; i < b; i++) {
ret *= a;
}
return ret;
}
我说之前怎么一直运行超时。。。