先附上AC代码,思路就是,一个一个加,碰到>z就调回a。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int num;
char arr[55];
cin>>num>>arr;
for(int i=0;arr[i]!='\0';i++)
{
for(int j=1;j<=num;j++)
{
arr[i]++;
if(arr[i]>'z') arr[i]='a';
}
if(arr[i]>'z') arr[i]='a';
}
cout<<arr;
return 0;
}
另一种思路是用asci值来计算,但是这种思路的话,应该注意char 类型的不能超过127,要小心爆掉!
用一个公式:arr[i]=(arr[i]+num-'a')%26+'a'