求问各位大佬,Dfs 生成 n 位回文数的复杂度是多少?
int reverse(int n) {
int a[10], i, sum = 0, t = n;
for (i = 0; n > 0; i++, n /= 10) {
a[i] = n % 10;
}
for (int j = 1; j < i; j++) {
sum = sum * 10 + a[j];
}
return sum + t * pow(10, i - 1);
}
void dfs(int i) {
int x = reverse(i), sum;
if (x > r) {
return;
}
if (x != 7 && x >= l) {
a[sum++] = x;
}
for (int j = 0; j < 10; j++) {
if (i * i < r) {
dfs(i * 10 + j);
} else {
return;
}
}
}