恺撒加密术(样例输出不对)

BJ.  恺撒加密术
Problem ID: 8238
Contest ID: 5697
必做题
时间限制:0.2内存限制:32M

专题说明:

在古罗马,“高卢战争”描述了凯撒使用加密来传递信息,即所谓的“凯撒加密”,这是一种替代加密。消息中的每个字母都被其后面的第t个字母替换。例如,当t=4时,加密规则是用原始字母后的第4个字母替换原始字母, 字母“A”后的第四个字母是“E”,而“A”被“E”取代,字母“z”后的第四个字母是“d”,而“z”被“d”取代。因此,“China”将被翻译成“Glmre”。请编写一个程序来加密输入的字符串,方法是将每个字母替换为后面的第t个字母。

输入格式:输入一个字符串并输入t

输出格式:标题中描述了输出格式。

示例输入1:

china 4

样本输出1:

glmre

示例输入2:

antDZYO 30

样本输出2:

erxHDCS

规定:

输入的字符串长度不超过100,只包含小写字母和大写字母。t<=260

样例输出不对

#include<bits/stdc++.h>
using namespace std;
string a;
int t;
int main(){
	cin>>a>>t;
	for(int i=0;i<a.size();i++){
		if(a[i]<='z' and a[i]>='a'){
			int b=a[i]-96+t;
			if(b>26) b-26;
			char c=b+'a'-1;
			cout<<c;
		}
		else if(a[i]<='Z' and a[i]>='A'){
			int b=a[i]-64+t;
			if(b>26) b-26;
			char c=b+'a'-1;
			cout<<c;
		}
	}
	return 0;
}
1 个赞
#include<bits/stdc++.h>
using namespace std;
string a;
int t;
int main(){
	cin>>a>>t;
	for(int i=0;i<a.size();i++){
		if(a[i]<='Z' and a[i]>='A'){
			putchar((a[i]-'A'+t)%26+'A');
		}
		else if(a[i]<='z' and a[i]>='a'){
			putchar((a[i]-'a'+t)%26+'a');
		}
	}
	return 0;
}

你那不能直接加

2 个赞