顺便我们来学习一下的一些基本入门操作,这样以后就可以虐高精度的模板题了
这道题的题意很简单,就是把字符串的每个位往后推位,然后再把各个位上的码乘起来
话说我是比赛前这题第一个验题的人诶,当时我高精度半个小时没调出来
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-1ans=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)
这种方式应该不是最短的,但已经是很短了