一、问题描述:
我们看到,把数字 0-9 翻倒,有的数字就认不出来了,比如 2、3、4、5、7;有的数字看上去没什么大的变化,比如 0、1、8;还有的数字变成了另一个数,比如 6 变成 9,9 变成 6。
给定一堆数字,请你判别每个数有没有可能是另一个数字翻倒形成的。
输入格式:
输入在第一行中给出一个正整数 n(≤20),随后 n 行,每行给出一个不超过 100 位的数字。
输出格式:
对每个给定的数字,如果它可能是由另一个数字翻倒得来的,就输出那个翻倒前的原始数字;如果不可能,就输出 bu ke neng
。
输入样例:
4 10086 233 9999 17456
输出样例:
10089 bu ke neng 6666 bu ke neng
二、代码实现:
1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 int main() 5 { 6 int n; 7 char a[21][101]={0}; 8 int flag[21]={0}; 9 cin>>n; 10 for(int i=0;i<n;i++) 11 { 12 cin>>a[i]; 13 } 14 for(int i=0;i<n;i++) 15 { 16 for(int j=0;j<strlen(a[i]);j++) 17 { 18 if((a[i][j]=='2')||(a[i][j]=='3')||(a[i][j]=='4')||(a[i][j]=='5')||(a[i][j]=='7')) 19 { 20 flag[i]=1;//bu ke neng 21 break; 22 } 23 if((a[i][j]=='6')||(a[i][j]=='9')) 24 { 25 flag[i]=2; 26 } 27 } 28 } 29 for(int i=0;i<n;i++) 30 { 31 if((flag[i]==1)) 32 { 33 cout<<"bu ke neng"<<endl; 34 } 35 else 36 { 37 for(int j=0;j<strlen(a[i]);j++) 38 { 39 if(a[i][j]=='6') 40 a[i][j]='9'; 41 else if(a[i][j]=='9') 42 a[i][j]='6'; 43 } 44 cout<<a[i]<<endl; 45 } 46 } 47 return 0; 48 }
标签:翻倒,倒数,数字,ke,int,neng,bu,520 From: https://www.cnblogs.com/tljx-cen/p/17417884.html