每次往下累计加一最后一次加一
其实按取余方法:(i + 1) % sum // i代表进行的次数,sum代表总数;
下面做个例题:
给定一个字符串 aa,请你按照下面的要求输出字符串 bb。
给定字符串 aa 的第一个字符的 ASCII 值加第二个字符的 ASCII 值,得到 bb 的第一个字符;
给定字符串 aa 的第二个字符的 ASCII 值加第三个字符的 ASCII 值,得到 bb 的第二个字符;
…
给定字符串 aa 的倒数第二个字符的 ASCII 值加最后一个字符的 ASCII 值,得到 bb 的倒数第二个字符;
给定字符串 aa 的最后一个字符的 ASCII 值加第一个字符的 ASCII 值,得到 bb 的最后一个字符。
输入格式
输入共一行,包含字符串 aa。注意字符串中可能包含空格。
数据保证字符串内的字符的 ASCII 值均不超过 6363。
输出格式
输出共一行,包含字符串 bb。
数据范围
2≤a的长度≤1002≤a的长度≤100
输入样例:
1 2 3
输出样例:
QRRSd
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1,s2;
int len=1;
getline(cin,s1);
s2=s1;
for(int i=0;i<s1.size();i++)
{
cout<<(char)(s1[i]+s1[(i + 1) % s1.size()]);//重点:(i + 1) % s1.size()
}
}
同样这个可以用于蛇形矩阵等