0
已解决
王梓澳
中级光能
中级光能
题目:
1791 密码升级战
题目描述 Description
密码战中A国的密码被我们成功破译,所以A国想出另外一条密码规则:
密码仍然为一串字符串,字符串里面每5个字符分为1组;
第一组字符串里面的字母转化为其后的第二个字母,例如:A--C,a--c,Y--A,y--a;
第二组字符串里面的字母转化为其前的第二个字母,例如:C--A,c--a,A--Y,a--y;
后面的字符串的字母全部转化为其后的第一个字母,例如:A--B,a--b,Z--A,z--a。
(除了字母以外的其他字符都不进行变化)
无奈我国再次截取了他们的密码,请将截获的密码翻译成原先的密码。
输入描述 Input Description
截取的字符串密码,密码字符个数为(1-50)
输出描述 Output Description
破译后的字符串密码
样例输入 Sample Input
cdeaBwxAzyBc23a
样例输出 Sample Output
abcyZyzCbaAb23z
题目网址:1791 密码升级战
我的代码:
#include <iostream>
#include <cstdio>
#include <cmath>
#include <string>
using namespace std;
int main ()
{
string s;
int l;
getline (cin,s);
l=s.size();
for(int i=0; i<=min(4,l); i++)
{
if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
{
if(s[i]=='B') cout<<'Z';
else if(s[i]=='b') cout<<'z';
else if(s[i]=='a') cout<<'y';
else if(s[i]=='A') cout<<'Y';
else cout<<char(s[i]-2);
}
else cout<<s[i];
}
for(int i=5; i<=min(9,l); i++)
{
if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
{
if(s[i]=='Z') cout<<'B';
else if(s[i]=='z') cout<<'b';
else if(s[i]=='y') cout<<'a';
else if(s[i]=='Y') cout<<'A';
else cout<<char(s[i]+2);
}
else cout<<s[i];
}
for(int i=10; i<=l; i++)
{
if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
{
if(s[i]=='A') cout<<'Z';
else if(s[i]=='a') cout<<'z';
else cout<<char(s[i]-1);
}
else cout<<s[i];
}
}
结果:
0
0
黄昊轩
新手守护
新手守护
头文件 #include <algorithm> 排序+模拟 sort(a+1,a+10+1); 浮点型 sum=0; 循环(int i=2; i<=10-1; i++) sum+=a[i]; 输出,用printf("%.2f",(int)(sum/8.0*100+0.5)/100.0); a数组是double型
0
陆麟瑞
资深天翼
资深天翼
可以参考如下代码。
循环(int i=0; i<=min(4,l); i++)//第一部分判断并替换 { if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z') { if(s[i]=='B') cout<<'Z'; else if(s[i]=='b') cout<<'z'; else if(s[i]=='a') cout<<'y'; else if(s[i]=='A') cout<<'Y'; else cout<<char(s[i]-2); } else cout<<s[i]; } 循环(int i=5; i<=min(9,l); i++)//第二部分判断并替换 { if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z') { if(s[i]=='Z') cout<<'B'; else if(s[i]=='z') cout<<'b'; else if(s[i]=='y') cout<<'a'; else if(s[i]=='Y') cout<<'A'; else cout<<char(s[i]+2); } else cout<<s[i]; } 循环(int i=10; i<=l; i++)//第三部分判断并替换 { if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z') { if(s[i]=='A') cout<<'Z'; else if(s[i]=='a') cout<<'z'; else cout<<char(s[i]-1); } else cout<<s[i]; }
模拟一遍就行了。
0