这个程序应该显示输入等于倒数
#include <iostream>
using namespace std;
int main() {
int n;
int reversedNumber = 0;
int remainder;
cout << "Enter an integer: ";
cin >> n;
while (n != 0) {
remainder = n % 10;
reversedNumber = (reversedNumber * 10) + remainder;
n /= 10;
}
if (reversedNumber == n)
cout << "YES";
else
cout << "NO";
return 0;
}
你好,我希望编译器显示是,但是当我在输入中输入 2356532 时显示否,该程序应该显示输入等于倒数。`
回答
你n /= 10在你的循环中划分直到你0离开,所以除了作为输入之外 if (reversedNumber == n)永远不会有true任何东西0。
n在循环前保存并与循环后保存的值进行比较。
例子:
int saved = n;
while (n != 0) {
remainder = n % 10;
reversedNumber = (reversedNumber * 10) + remainder;
n /= 10;
}
if (reversedNumber == saved) ...
演示