顺便我们来学习一下的一些基本入门操作,这样以后就可以虐高精度的模板题了
这道题的题意很简单,就是把字符串的每个位往后推位,然后再把各个位上的码乘起来
话说我是比赛前这题第一个验题的人诶,当时我高精度半个小时没调出来
xxxxxxxxxx
# python的注释是用#号的
n,m=input().split() #读入部分,用这样的方式在同一行读入多个字符,但是都是字符串形式的
t=int(n)
r=int(m)%26 #必须用int,这里的int不是指换为ascii码,而是直接转为数字,就和pascal的val相似;对26取模,因为26个字母一循环
while (t>0): #while语句是这么打的
s=input()
t=t-1
ans=1 #答案在这里哟
s1="" #python不支持简单的字符串其中一位的修改操作,所以我们新开一个列表
for i in range(0,len(s)-1): #for循环是这么打的,len函数等于pascal中的length,这里如果右边范围取len(s)的话会多出一个奇奇怪怪的字符
x=chr(ord(s[i])+r) #往后推r位,ord和chr这两个函数P党都懂吧
if (x>'Z'): #if语句是这么打的
x=chr(ord(x)-26) #如果超出Z了就取模
ans*=ord(x)
s1=s1+x #把答案存入列表
print(s1) #愉快输出
print(ans)
这种方式应该不是最短的,但已经是很短了