题目:用户输入n,输出大于等于11小于等于n的所有回文数
#include <iostream>
#include <math.h>
using namespace std;
//回文函数,将一个数字各个位都反过来,输出这个数字
int turn(int n) {
int a[100], t = 0, k = n;
do {
a[t] = k % 10;
k = k / 10;
t++;
} while (k != 0);
int turn = 0;
for (int i = 0; i < t; i++) {
turn += a[i] * pow(10, t-i-1);
}
return turn;
}
//主函数
int main() {
int n;
cin >> n;
for (int i = 11; i <= n; i++ ) {
if (turn(i) == i) {
cout << i << endl;
}
}
return 0;
}
无报错,但是无法输出三位数和五位数的回文数
有朋友给出代码如下
//回文函数,将一个数字各个位都反过来,输出这个数字
int turn(int n) {
int a[100], t = 0, k = n;
do {
a[t] = k % 10;
k = k / 10;
t++;
} while (k != 0);
int turn = 0;
for (int i = 0; i < t; i++) {
turn = turn * 10 + a[i];
}
return turn;
}
因此推断可能是pow函数的问题
求解输出错误的原因
不知道为啥,我在DEV-C++5.11 运行你i的代码没有问题。