# 纪念日
import datetime
x = datetime.datetime(1921, 7, 23, 12, 0, 0)
y = datetime.datetime(2020, 7, 1, 12, 0, 0)
print(36138 * 24 * 60)
将LANQIAO中的字母重新排列,可以得到不同的单词,如LANQIAO、AAILNOQ等,注意这7个字母都要被用上,单词不一定有具体的英文意义。
请问,总共能排列如多少个不同的单词。
# 字母排列
import itertools
s = list("LANQIAO")
print(len(set(itertools.permutations(s))))
由1对括号,可以组成一种合法括号序列:()。
由2对括号,可以组成两种合法括号序列:()()、(())。
由4对括号组成的合法括号序列一共有多少种?
# 括号排序
import itertools
def check(ls):
if ls[0] == ')':
return False
stack = []
for i in ls:
if i == '(':
stack.append(i)
elif i == ')':
if len(stack) == 0 or stack.pop() != '(':
return False
return True
ans = set()
ls = list(itertools.permutations(['(', ')', '(', ')', '(', ')', '(', ')']))
for i in ls:
if check(i):
ans.add(i)
print(len(ans))
给定一个单词,请使用凯撒密码将这个单词加密。
凯撒密码是一种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文。即a变为d,b变为e,…,w变为z,x变为a,y变为b,z变为c。
例如,lanqiao会变成odqtldr。
输入格式
输入一行,包含一个单词,单词中只包含小写英文字母。
输出格式
输出一行,表示加密后的密文。
样例输入
anqiao
样例输出
odqtldr
# 字母加密
letter = input()
arr = []
new_arr = []
for i in letter:
arr.append(i)
for j in arr:
value = ord(j) + 3
new_arr.append(chr(value))
ans = ''.join(new_arr)
print(ans)
1/1 + 1/2 + 1/4 + 1/8 + 1/16 + …
每项是前一项的一半,如果一共有20项,
求这个和是多少,结果用分数表示出来。
类似:
3/2
当然,这只是加了前2项而已。分子分母要求互质。
注意:
需要提交的是已经约分过的分数,中间任何位置不能含有空格。
请不要填写任何多余的文字或符号。
# 分数
from fractions import Fraction
res = []
for i in range(20):
a = 1 / (2**i)
res.append(a)
print(Fraction(sum(res)))
图片旋转是对图片最简单的处理方式之一,在本题中,需要对图片顺时针旋转 90 度。用一个 n×m 的二维数组来表示一个图片,例如给出一个 3×4 的图片的例子:
1 3 5 7
9 8 7 6
3 5 9 7
这个图片顺时针旋转 90 度后的图片如下:
3 9 1
5 8 3
9 7 5
7 6 7
给定初始图片,请计算旋转后的图片。
【输入格式】
输入的第一行包含两个整数 n 和 m,分别表示行数和列数。接下来 n 行,每行 m 个整数,表示给定的图片。图片中的每个元素(像 素)为一个值为 0 至 255 之间的整数(包含 0 和 255)。
【输出格式】
输出 m 行 n 列,表示旋转后的图片。
# 图片旋转
n, m = map(int, input().split())
ls = []
for i in range(n): # 构建数组
num = list(map(int, input().split()))
ls.append(num)
new_ls = [[0] * n for i in range(m)]
for a in range(n):
for b in range(m):
new_ls[b][a] = ls[2-a][b]
for i in range(len(new_ls)):
for j in new_ls[i]:
print(j,end=' ')
print('')
# 熊怪吃核桃
num = 1543
ans = 0
while num != 1:
if num % 2 != 0:
ans += 1
num = (num-1) // 2
else:
num /= 2
print(ans+1) # 因为最后剩下了一个核桃,需要把它扔掉,所以结果需要加1
# 三角形面积
print(8*8-4*6//2-8*2//2-8*4//2)
# 加法变乘法
ls = []
for i in range(50):
for j in range(50):
if 1225- 2*i - 2*j - 2 + i*(i+1) + j*(j+1) ==2015 and i < j:
ls.append([i,i+1,j,j+1])
print(ls[1][0])
# 饮料换购
n = int(input())
sum = n
while sum >= 3:
n += sum // 3
sum = sum // 3 + sum % 3
print(n)