这个题目主要是要考虑到超过轮回怎样回来的问题。先将位数%26,取余数进行加减。(反正要轮回。);然后,判断如果大于‘z’就轮回。我之前是在两个循环里面弄得,但不知道为什么错了。当然,一次循环里面判断解决当然更优,也对了。
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
char password[10010];
int main(){
int wei;
cin>>wei>>password;wei%=26;//直接取余数,反正超过26要循环
for(int i=0;i<strlen(password);i++){
if(password[i]+wei>'z'){//大于z了,循环。
password[i]-=26;
}
password[i]+=wei;//移位
}
cout<<password;
return 0;
}