竞赛讨论区 > 黑洞密码,一个细节。
头像
Yuxy.
发布于 2021-01-30 19:02
+ 关注

黑洞密码,一个细节。


这两种写法有什么不一样么,为什么第一种写法提交有部分数据不通过?

未通过代码:
#include<bits/stdc++.h>
using namespace std;
char x[20];
int y[20];
int main(){
	string a;
	cin>>a;
	int k=1,j=1;
	for(int i=0;i<32;i++){
		if(a[i]>='0'&&a[i]<='9'){ y[k]=a[i]-'0';k++;}
		else{ x[j]=a[i];j++;}
	}
	
	for(int i=1;i<=16;i++){
		if(x[i]>='A'&&x[i]<='Z'){
			x[i]=x[i]+y[i];	
			if(x[i]>'Z') x[i]=x[i]-'Z'+'a';
		}
		else if(x[i]>='a'&&x[i]<='z'){
			x[i]=x[i]+y[i];
			if(x[i]>'z') x[i]=x[i]-'z'+'A';
		}
		//cout<<x[i];
	}
	for(int i=4;i<=16;i+=4){
		for(int j=i;j>=i-3;j--){
			cout<<x[j];
		}
	}
	
	return 0;
} 

AC代码:
#include<bits/stdc++.h>
using namespace std;
char x[20];
int y[20];
int main(){
	string a;
	cin>>a;
	int k=1,j=1;
	for(int i=0;i<32;i++){
		if(a[i]>='0'&&a[i]<='9'){ y[k]=a[i]-'0';k++;}
		else{ x[j]=a[i];j++;}
	}
	
	for(int i=1;i<=16;i++){
		if(x[i]>='A'&&x[i]<='Z'){
			
			if(x[i]+y[i]>'Z') x[i]=x[i]+y[i]-'Z'+'a';
			else x[i]=x[i]+y[i];	
		}
		else if(x[i]>='a'&&x[i]<='z'){
			
			if(x[i]+y[i]>'z') x[i]=x[i]+y[i]-'z'+'A';
			else x[i]=x[i]+y[i];
		}
		//cout<<x[i];
	}
	for(int i=4;i<=16;i+=4){
		for(int j=i;j>=i-3;j--){
			cout<<x[j];
		}
	}
	
	return 0;
} 


全部评论

(7) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐