该程序应显示输入等于反数 [英] This program should show that the input is equal to the inverse number
本文介绍了该程序应显示输入等于反数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
#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时显示No,此程序应显示输入等于反数.
Hello, I want the compiler to show yes but when i enter 2356532 in my input shows No ,This program should show that the input is equal to the inverse number.`
推荐答案
您在循环中除 n/= 10
,直到剩下 0
,所以如果(reversedNumber == n)
除了输入为 0
之外,对于任何其他情况都不会为 true
.
You divide n /= 10
in your loop until you have 0
left so if (reversedNumber == n)
will never be true
for anything but 0
as input.
在循环前保存 n
并与您在循环后保存的值进行比较.
Save n
before the loop and compare with the value you've saved after the loop.
示例:
int saved = n;
while (n != 0) {
remainder = n % 10;
reversedNumber = (reversedNumber * 10) + remainder;
n /= 10;
}
if (reversedNumber == saved) ...
这篇关于该程序应显示输入等于反数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文