判断中心对称数-入门

定义:中心对称数:将原数值沿中心点翻转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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值