题目描述
给定一个字符串 a,请你按照下面的要求输出字符串 b。
给定字符串 a的第一个字符的 ASCII 值加第二个字符的 ASCII 值,得到 b的第一个字符;
给定字符串 a的第二个字符的 ASCII 值加第三个字符的 ASCII 值,得到 b的第二个字符;
给定字符串 a的倒数第二个字符的 ASCII 值加最后一个字符的 ASCII 值,得到 b的倒数第二个字符;
给定字符串 a的最后一个字符的 ASCII 值加第一个字符的 ASCII 值,得到 b的最后一个字符。
输入格式
输入共一行,包含字符串 a。注意字符串中可能包含空格。
数据保证字符串内的字符的 ASCII 值均不超过 63。
输出格式
输出共一行,包含字符串 b。
解题思路
首先输入字符串a,识别a的长度,for循环遍历,同时将前后两项的ASCII码值相加
注意:这里使用%l的目的是,当i达到l-1时,a[(i+1)%l]就是字符串a的第一个字符。
使用模数运算符%可以使循环在达到字符串长度时重新开始,形成闭环
C++ 代码
#include<iostream>
#include<cstring>
using namespace std;
int main(){
string a,b;
getline(cin,a);
int l=a.size();
for(int i=0;i<l;i++){
b+=a[i]+a[(i+1)%l];
}
cout<<b<<endl;
return 0;
}
篇章
上一篇:AcWing 767. 信息加密
https://www.acwing.com/solution/content/210196/
下一篇:AcWing 770. 单词替换
https://www.acwing.com/solution/content/210274/