20分求调
  • 板块P1906 凯撒密码
  • 楼主canwen
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/5/15 22:03
  • 上次更新2024/5/15 22:06:58
查看原帖
20分求调
1284815
canwen楼主2024/5/15 22:03
#include<bits/stdc++.h>
using namespace std;
char x[]={'C', 'D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','A','B'};
char y[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
int findd(char a){
	int ans=0;
	while(x[ans]!=a)ans++;
	return ans;
}
int main(){
//	freopen("in.txt","r",stdin);
//	freopen("out.txt","w",stdout);
	string a;string ab,abc;
	while(getline(cin,ab)&&getline(cin,a)&&getline(cin,abc)){
		if(ab=="ENDOFINPUT\r"||a=="ENDOFINPUT\r\n"||a=="ENDOFINPUT\n")break;
		int len=a.length();
		for(int i=0;i<len;i++){
			if(a[i]>='a'&&a[i]<='z')a[i]=toupper(a[i]);
			if(!(a[i]>='A'&&a[i]<='Z')){
				if(a[i]!='\n')cout<<a[i];
			}
				
			else{
				int k=findd(a[i]);
				if(k-3>=0){
					cout<<y[k-3];
				}else{
					cout<<y[k-3+len];
				}
			}
		}
		cout<<endl;
	}
	return 0;
}
2024/5/15 22:03
加载中...