定义:中心对称数:将原数值沿中心点翻转180度后数值与原数值相等。
第一种方法:输入数中只包含01689,输入数不超过9位
#include<bits/stdc++.h>
using namespace std;
int num1,num2,t,n; //定义原输入数值,翻转后数值,临时存储数值及每一位值
int main(){
cin>>num1;
t=num1; //输入后将输入数值临时存到t中,方便计算
while(t>0){
n=t%10;//取t的个位
if(n==6) n=9; //判断是否为6,9,若是则进行翻转
else if (n==9) n=6;
num2=num2*10+n; //把翻转后的值存储进入num2中
t=t/10; //从未翻转数中去掉翻转过的数
}
if(num1==num2){
cout<<"Yes"; //判断是否为中心对称数
}
else cout<<"No";
return 0;
}
第二种方法:字符串-输入数无限制
#include<bits/stdc++.h>
using namespace std;
int main(){
string str;//定义字符串
int len,state=1,sum;
cin>>str;
len=str.size();
for(int i=1;i<=len/2+1;i++){
sum=(str[i-1]-'0')+str[len-1-(i-1)]-'0';//因为字符串从0开始,所以减去1
if(!(sum==0 or sum==2 or sum==15 or sum==16)){//前后两个中心对称的数和必为0,2,15,16
state=0;
break;
}
}
if(state==1){
cout<<"Yes"; //判断是否为中心对称数
}
else cout<<"No";
return 0;
}
1465

被折叠的 条评论
为什么被折叠?



