简单回文数

描述

霜霜学姐是一个数学天才,她轻而易举的就解决了小明学长留下了的数学问题。霜霜学姐对于小明学长这种故意刁难人的做法嗤之以鼻。所以霜霜学姐给你们留了一道简单的回文题。

给定一个十进制的整数 56,将 56 加上 65 (即把56从右往左读),得到的121是一个回文数。

现在,给你N个数,请你判断这些数经过上述操作之后是否能得到一个回文数

输入描述

一个整数 T ,接下来 T 行,每行一个正整数 N

1≤T≤103

1≤N≤106

输出描述 

对于每行的正整数N,请你判断这个数是否能经过上述操作得到一个回文数,是输出YES,否输出NO

用例输入 1 

4
56
87 
100 
1353

用例输出 1 

YES
NO
YES
YES

解题思路:将数字反转相加后转为字符串,再验证是否是回文。

#include<bits/stdc++.h> 
using namespace std;
typedef long long ll;

int t;
string n;


int main() {
	cin >> t;
	while(t-- ) {
		cin >> n;
		int a = stoi(n);
		reverse(n.begin(),n.end());
		int b = stoi(n);//反转后的数字
		n = to_string(a + b);//将整数转为字符串
		int len = n.size();
		for(int i = 0;i < len;i++,len--) {
			if(n[i] != n[len]) {
				cout << "NO" << endl;
				goto aga;
			}
			else cout << "YES" << endl;
			aga:;
		} 
			
	}
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kinkinpp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值