讨论/技术交流/c++ 怎么比较两个INT整数是否相等?/
c++ 怎么比较两个INT整数是否相等?

简介

写的一道简单题:判断是否为回文数,最后返回 ret == x
ret和x是相等的整数,可是却是false
我感觉可能是地址什么的问题,可是找不出来
官方的代码最后也是返回两个整数判断 == 但是却能通过

请各位大佬帮我看看,谢谢!!!!!!!

我的代码

这里是我的代码

class Solution {
public:
	bool isPalindrome(int x) {
		if (x < 0) return false;

		int ret = 0;
		while (x != 0) {
			ret = x % 10 + ret * 10;
			x /= 10;
		}
		return x == ret;
	}
};

这里是官方代码

class Solution {
public:
	bool isPalindrome(int x) {

		if (x < 0 || (x % 10 == 0 && x != 0)) {
			return false;
		}

		int revertedNumber = 0;
		while (x > revertedNumber) {
			revertedNumber = revertedNumber * 10 + x % 10;
			x /= 10;
		}
		return x == revertedNumber || x == revertedNumber / 10;
	}
};
1
共 2 个回复

哈哈,被自己弄笑了,谢谢你

1

你的代码里的while循环的终止条件是x == 0,就是说退出循环之后,虽然这时候ret变成了你输入的x的值,但现在你的x已经变成0了。
你一开始设个变量int cur = x来做,循环里去改变cur,最后比较x和ret即可。