这两种写法有什么不一样么,为什么第一种写法提交有部分数据不通过?
未通过代码:
#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) 回帖