题目描述
有n个数字,如果这串数字顺序第i个数字和逆序第i个数字总是相等的,我们称之为对称数串,现在给你一组数,让你判断他是否是对称数串。
解题思路
1.输入这一组数。
2.判断他某位于倒叙某位,是否相同。
程序代码
#include<iostream>
using namespace std;
int a,b[101],i,j,c;
int main()//主函数的起始
{
cin>>a;//输入将要个你这一组数的个数。
if(a%2==0)//判断这组数个数为奇数还是为偶数,以便在后面停止判断
{
c=a/2;//若为偶数,算出这组数到中间项时的个数。
}
else //若为奇数,
{
c=(a+1/2;//算出这组数到中间项时的个数。
}
for(i=0;i<a;i++)//循环,用于输入这一组数
{
cin>>b[i];//输入一组书。
}
for(j=0;j<a;j++)//循环,用于判断是否为为对称数串。
{
if(b[j]==b[a-1-j])//当j项与倒叙j项相同时,相当于这位达到了对称数传的要求。
{
if(j==c)//直到计算到他的中间项为止,都符合要求。
{
cout<<"YES"<<endl;//说明这组数就符合要求。
}
}
else//当不符合要求时
{
cout<<"NO"<<endl;//输NO。
return 0;//然后马上结束运行,防止输出多遍NO。
}
}
return 0;//结束主函数的运行。
}