恺撒密码 B
描述
恺撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
对于原文字符P,其密文字符C满足如下条件:C = (P+3) mod 26
上述是凯撒密码的加密方法,解密方法反之,即:P = (C-3) mod 26
假设用户可能使用的输入仅包含西文字母,即英文大小写字母a~zA~Z和特殊字符,请编写一个程序,对输入字符串进行凯撒密码加密,直接输出结果,其中特殊字符不进行加密处理。
此题目是AutoOJ(自动评阅)类型,请注意:
1. 输入使用input(""),不要增加提示信息
2. 输出与要求一致
3. 不考虑异常输入情况
输入
示例1: python is GOOD!
输出
示例1: sbwkrq lv JRRG!
s = input() t = "" for c in s: if 'a' <= c <= 'z': t += chr( ord('a') + ((ord(c)-ord('a')) + 3 )%26 ) elif 'A'<=c<='Z': t += chr( ord('A') + ((ord(c)-ord('A')) + 3 )%26 ) else: t += c print(t)
03200301584982791069
括号配对检测 A
描述
用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确,配对成功与否分别输出:
配对成功,配对不成功
其中,小括号配对要考虑配对顺序,即()表示配对,)(不是配对,只考虑小括号配对。
注意,这是一个OJ题目,获得输入使用input("")。
输入
示例1:(这是一个例子)
示例2:这是一个(例子
输出
示例1:配对成功
示例2:配对不成功
s = input("") t = {'('} r = {')'} a = 0 b = 0 for c in s: if c in t: a = a+1 if c in r: b = b+1 else: a = a+0 b = b+0 elif a>b: if c in r: b = b+1 else: a = a+0 b = b+0 if (a+b)%2 == 0: print("配对成功") else: print("配对不成功")
同符号数学运算
描述
读入一个整数N,分别计算如下内容:
1. N的绝对值;
2. N与10进行同符号加法、减法和乘法运算,同符号运算指使用N的绝对值与另一个数进行运算,运算结果的绝对值被赋予N相同的符号,其中,0的符号是正号。
将上述4项结果在一行输出,采用空格分隔,输出结果均为整数。
输入
示例1:100
输出
示例1:100 110 90 1000
N = eval(input()) a = abs(N) if N<0: print(a,-abs(a+10),-abs(a-10),-abs(a*10)) else: print(a, abs(a+10), abs(a-10), abs(a*10))
快乐的数字
描述
编写一个算法来确定一个数字是否“快乐”。 快乐的数字按照如下方式确定:从一个正整数开始,用其每位数的平方之和取代该数,并重复这个过程,直到最后数字要么收敛等于1且一直等于1,要么将无休止地循环下去且最终不会收敛等于1。能够最终收敛等于1的数就是快乐的数字。
例如: 19 就是一个快乐的数字,计算过程如下:
- 12 + 92 = 82
- 82 + 22 = 68
- 62 + 82 = 100
- 12 + 02 + 02 = 1
当输入时快乐的数字时,输出True,否则输出False。
输入
示例1:19
输出
示例1:True
def getSumofSquares(num): numStr=str(num) sum=0 digitls=[int(x) for x in numStr] for i in digitls: sum += i**2 return sum def main(): n = input() sumofSqrs = eval(n) count = 0 while sumofSqrs != 1: sumofSqrs = getSumofSquares(sumofSqrs) count += 1 if count > 2000: print("False") break else: print("True") main()
字符串反码 A
描述
字符串反码的定义为:字符串所包含字符的反码组成的字符串。
字符反码的定义为:
(1) 对于小写英文字符,它的反码也是一个小写英文字符,且该字符与'a'的距离等于其反码与'z'的距离;
(2) 对于大写英文字符,它的反码也是一个大写英文字符,且该字符与'A'的距离等于其反码与'Z'的距离;
两个字符距离指其对应unicode编码之差。
s = input() t = "" for c in s: if 'a'<=c<='z': t += chr(ord('z')-ord(c)+ord('a')) elif 'A'<=c<='Z': t += chr(ord('Z')-ord(c)+ord('A')) else: t = t+c print(t)
03200301584982992727
字符串逆序输出
描述
用户输入一个字符串,倒序输出。
输入格式
输入一个字符串
输出格式
一个倒序的字符串
输入输出示例
输入 | 输出 | |
示例 1 | hello | olleh |
S = input() print(S[::-1])
2003200301584983041887
照猫画虎求阶乘
描述
阶乘是基斯顿·卡曼(Christian Kramp)于 1808 年发明的运算符号,是数学术语。
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。
任何大于等于1 的自然数n 阶乘表示方法:
参考示例代码,编程求任意大于0的整数的阶乘。
n = int(input()) #把用户输入赋值给变量n,int()的作用是将输入的字符串转成整数 sum = 0 #sum 赋初值为0 for i in range(1,n+1): #括号里取值范围是从1到n,不包括n+1 sum = sum + i #每次循环时把i值加到sum上 print(sum)
输入格式
输入一个正整数(只考虑大于0的情况,不需要考虑输入为0的情况)
输出格式
阶乘值,一个正整数
输入输出示例
输入 | 输出 | |
示例 1 | 5 | 120 |
n = int(input()) sum = 1 for i in range(1,n+1): sum = sum*i print(sum)