说明
从键盘输入一个整数N(4<=N<=20),接下来输入N个数,判断输入的这些数是否对称,是输出“YES”,否则输出“NO”?(注意N可以是奇数或者偶数)。对称的意思是这些数正过来读和反过来读都是一样的。
比如有4个数:1 2 2 1,就是对称的,再比如有5个数:1 2 3 2 1,也是对称的,但有5个数:1 2 3 1 2,就不是对称的。
输入格式
第1行有一个整数n(4<=n<=20)
第2行有n个整数。
输出格式
如果是对称的请输出:YES,否则输出:NO。
样例
输入数据 1
4
1 2 2 1
Copy
输出数据 1
YES
Copy
代码
(1)c++
#include <iostream>
using namespace std;
int main()
{
int n,a[21];
bool d=1;
cin >> n;
for(int i=1;i<=n;i++)
{
cin >> a[i];
}
if(n%2==0)
{
for(int i=1;i<=n/2;i++)
{
for(int j=n+1-i;j>=n+1-i;j--)
{
if(a[i]!=a[j])
{
d=0;
break;
}
}
}
}
else
{
for(int i=1;i<=n/2;i++)
{
for(int j=n+1-i;j>=n+1-i;j--)
{
if(a[i]!=a[j])
{
d=0;
break;
}
}
}
}
if(d)
{
cout << "YES";
}
else
{
cout << "NO";
}
return 0;
}
(2)python
思路
在python中,input函数有一个bug般的特性:它不管你输入什么,一律做字符串算!不信可以输入这两行代码验证。
a=input()
print(type(a))
Copy
输出应该是
#<class 'str'>
Copy
于是,这题就转化为了求回文数的操作(显然空格是对称的,如果是偶数,空格便是中间那个,共奇数个,剩下的便是是否对称的问题;是奇数的话就纯粹取决于数字是否对称了)。
代码
P=input()#这行代码纯粹就是凑数。
a=input()
s=''
for i in range(len(a)-1,-1,-1):
s+=a[i]#构造回文数
if s == a:#判断是否相等,也可以在循环内判断(不相等就break)
print('YES')
else:
print('NO')
Copy
Loading:18/100……