该程序应显示输入等于反数 [英] This program should show that the input is equal to the inverse number

查看:36
本文介绍了该程序应显示输入等于反数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


#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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆