题目描述
James同学发现了在二维数组中有一些回文数,请编程找出这些回文数,并按照输入的顺序输出。 (回文数指的是这个数正过来读和反过来读是同一个数的数,比如1、8、99、252、1221等)。
输入
第一行是两个整数n和m(n和m都是4~100之间的整数),代表接下来的二维数组有n行m列。
接下来n行,每行有m个整数,这些整数都是1~9999之间的整数。
输出
按照输入的顺序输出满足条件的回文数,每行1个。
思路
回文数是一道在c++中十分基础的问题。首先,我们需要将正数过来的数用循环进行拆分(for和while)(%得到最后一个的个位数字,/砍掉最后的一个位数),拆分完后的数字,我们要将它们存入另外一个变量里面,如果两个数字相等,那么那个数就是回文数。 在拆分完存入变量中,我们要先将原有的变量乘以10,这样才能加上新拆分出的个位数字。最后,进行比较输出即可
代码
#include<bits/stdc++.h>
using namespace std;
int n,m,t,s,a;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
cin>>t;
s=0;
a=t;
while(t!=0)
{
s=s*10+t%10;
t/=10;
}
if(a==s)
cout<<a<<endl;
}
return 0;
}