描述
若一个正整数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数,比如 121、2332 都是回文数,13、4567都不是回文数。
编写程序,输入一个正整数n,判断n是否为回文数,如果是,则输出“Yes”,否则输出“No”。
输入描述
输入一个正整数 n。
输出描述
如果n是回文数,则输出“Yes”,否则输出“No”。
用例输入 1
12321
用例输出 1
Yes
提示
回文数在问题求解中经常遇到,只需要判断原数与其反转数是否相等即可,如果相等则是回文数,否则不是。
那他给我们提示了,我们就重视起来。其实他这道题吧不是那么难,就是这道题稍微有一点绕,我们举个例子就可以了
首先假设a = 0;
n = 1221;
那么拆分数位就是1 2 2 1,用字母代替就是q w e r,要使q w e r组成n ,就要是n = 1000 * q + 100 * w + 10 *e + 1 * r。回文数就是倒过来也等于n ,这时n = 1000 * r + 100 * e + 10 * w + 1 * q。但这只是假设,实际我们并不知道有多少位,所以我们要用while循环,代码如下:
#include <iostream>
using namespace std;
int main(){
int m,n = 0,q = 1;
cin >> m;
int z = m;
while(m){
int i;
i = m % 10;
m /= 10;
n = n * 10 + i;
q *= 10;
}
if(z == n){
cout << "Yes";
}
else{
cout << "No";
}
return 0;
}