A——塔(代码补全题)
解题思路:
代码如下:
'''
观察题目样例给出的高为5层的塔,可以得出以下几个规律
对于一个高为n层的塔而言,首先设最上面一层(顶层)为第一层。
1. 对于第i层而言,其字符的排列规律为:大写字母表中从第1个字符(A)~第i个字符,后又倒序从第i-1个字符~第1个字符(A)。
2. 第1~n-1层每层前都有空格,具体而言,对于第i行,字符前面的空格个数为n-i个。
找出以上规律后,我们就可以根据这些规律构造出答案:层高26的塔。
TIPS:
大写字母'A'为大写字母表第一个字符
对于大写字母表中第i个字符,可以使用'A'+i-1得到。
例如:第5个字符为'E',亦即为:'A'+5-1
'''
n=26;# 设定塔的层数为26
i=1
while i<=n:# 对塔每一层按照规律进行构造。
# 首先进行输出空格的操作:对于第i行,字符前面的空格个数为n-i个。
j=1
while j<=n-i :#注意这里最右边的分号:为原python语法,不要修改
print(" ",end="")
j=j+1
h=1
while h<=i:# 按照规律1,输出第1~第i个大写字母。
c1=chr(h+ord('A')-1)# 第j个大写字母为'A'+j-1
print(c1,end="")# 输出第j个大写字母
h=h+1
k=h-2 #或者k=i-1
while k>=1:# 按照规律1,输出第i-1~第1个大写字母,注意是倒序
c2=chr(k+ord('A')-1)
print(c2,end="")
k=k-1
print("")# 第i行输出结束,进行换行。
i=i+1
B——日记(直接输出结果即可)
解题思路:
代码如下:
print('i love linkezbas je dosadna ovakemijaxaszxdbtddbtddbtddbtddbtddbtd')
C——哥布林
解题思路:
代码如下:
有空再研究
D——质数区间
代码如下:
不会
E——神仙爱采药
代码如下:
import sys
V = int(input())
s = input()
day = len(s) #天数
pill_n = 0 #药丸数量
herb_n = 0 #药材数量
weight2_n = 0 #重量为2的药材数量
for i in range(day):
w = int(s[i])
if V >= 2:
if w == 2:
weight2_n += 1
V = V - w
herb_n += 1
pill_n += herb_n
if V < 2:
break
for j in range(i+1,day):
w = int(s[j])
if V==1 and w==1:
V = V-w
herb_n +=1
pill_n += herb_n
elif w==1 and weight2_n>=1:
weight2_n -= 1
pill_n += herb_n
V = V+1
else:
pill_n += herb_n
print(pill_n)
sys.exit(0)
F——但更爱字符串
代码如下:
不会
G——猫腥草争夺大战
代码如下:
不会
H——无限山河印的故事
代码如下:
不会
I——奇怪的传输机增加了
代码如下:
import sys
N,x,y = map(int, input().split())
n = N #当前剩余数据量
# n_chuanshu = 0 #传输的数据量
flag = 1
for i in range(y):
n = n*2/3
if i >= (x-1) and flag == 1:
n = n+ N/2
flag = 0
if n < N/32:
print('N0!')
print(i+1,end=' ')
print('%.6f'%n)
break
if i==(y-1):
print('YE5!')
print('%.6f'%n)
sys.exit(0)
J——奇怪的小鸭子也增加了
代码如下:
import sys
A,B,a,b=map(int, input().split())
t_a = int(A/a)
na = int((t_a-1)/2+1)
t_b = int(B/b)
nb = int((t_b-1)/2+1)
print(int(na*nb))
sys.exit(0)
K——关于哥俩好数字这件事
代码如下:
def sta(a):
num = str(a % 9)
for i in range(a // 9):
num += str(9)
res = int(num)
return res
def search_geliang(ss):
ss = [ss0 for ss0 in ss]
if len(ss) == 1:
ss = ['0']+ss
all = int(ss[-1])
findindex = None
for index in range(len(ss)-2, -1, -1):
all += int(ss[index])
if (not ss[index] == '9') and all > int(ss[index]):
findindex = index
break
if findindex is None:
ss = ['0']+ss
index = 0
else:
index = findindex
ss[index]=str(int(ss[index])+1)
for i in range(index+1, len(ss)):
ss[i] = '0'
res = all-int(ss[index])
n = res//9
rres = res % 9
for i in range(n):
ss[len(ss)-i-1] = '9'
ss[len(ss)-n-1] = str(rres)
return ''.join(ss)
n = int(input())
result_cur = float('inf')
res_t = 0
if n <= 1000:
a = 1
elif n <= 5000:
a = 17
start_num = sta(a)
cur_num = start_num
res_t = 0
for i in range(n):
res_t += cur_num
cur_num = int(search_geliang(str(cur_num)))
while res_t <= result_cur:
result_cur = res_t
a += 1
start_num = sta(a)
cur_num = start_num
res_t = 0
for i in range(n):
res_t += cur_num
cur_num = int(search_geliang(str(cur_num)))
print(result_cur)
L——我们仍未知道那窝蛋的名字
代码如下:
不会
M——签到题
代码如下:
N = int(input())
if N == 1:
print('ADPC')
else:
print(12345)