工程师死绝的世界答案-python3版
エンジニアが死滅シタ世界|アンドロイドとふたりぼっちで生きろ。
荒れ果てた警察署 [MISSION LEVEL: D]
难度D
题目要求:
あなたは 0 から 9 の数字を 3 つ入力すると開く扉を開こうとしています。
鍵の番号は左から 2 つまで判明しています。 3 つ目に関しては以下の法則で決まることがわかりました。
・2 つ目までをすべて足す
・足したものを 10 で割ったときの余り
2 つ目までの数字が与えられるので 3 つ目を計算し出力してください。
简单说就是输入两个小于10的数字用空格间隔开,两个数字相加,取余数。即获取第三个数。
答案:
# coding: utf-8
# 自分の得意な言語で
# Let's チャレンジ!!
a= input()
arr=a.split(" ")
b=int(arr[0])
c=int(arr[1])
d=(b+c)%10
print(d)
荒れ果てたオフィス [MISSION LEVEL: D]
难度D
あなたは書類の整理をしています。
書類には 1 から 3 までの重要度 e が設定されています。数字が大きいほど重要な書類とされています。
書類のタイトル文字列 S_i と重要度 e_i が n 件与えられます。
重要度が 3 の書類のタイトルのみを入力された順に出力してください。
答案
# coding: utf-8
# 自分の得意な言語で
# Let's チャレンジ!!
num = int(input())
l = []
for i in range(num):
l.append(input())
for item in l:
arr=item.split(" ")
if int(arr[1]) == 3:
print(arr[0])
アンドロイドの生産工場 [MISSION LEVEL: D]
难度D
ある暗号化された文字列 S が与えられます。
文字列 S のうち奇数文字目を取り出せば解読できることがわかりました。
文字列 S が与えられるので奇数文字目の文字を取り出して解読した文字列を出力してください。
题目要求:输入一行字符串,打印出字符串的奇数位,组成新的字符串。
答案
# coding: utf-8
# 自分の得意な言語で
# Let's チャレンジ!!
a = input()
l=[]
for i,item in enumerate(a):
if i+1 & 0x1:
#按位与,因为下标从0开始,但是在奇数位,所以加1
l.append(item)
s="".join(l)
print(s)
錆びついた電波塔 [MISSION LEVEL: D]
难度D
電波でデータ通信するプログラムが壊れてしまっており、あなたはそれを直そうとしています。
n回の通信をしたとき、受信した各データ各電波強度 d_i が与えられます。各電波強度 d_i は 1 から 9 の整数で表され、 5 以下では通信に失敗します。
n 回の通信のうち通信に成功した回数を出力してください。
题目要求:输入一个数字n,然后输入n个数字组成的字符串逗号间隔,默认每个数字为个位数,输出大于5的数字的个数。。
比如输入
4
3 6 5 7 3
输出
2
答案
# coding: utf-8
# 自分の得意な言語で
# Let's チャレンジ!!
num = int(input())
s = input()
arr = s.split(" ")
i = 0
for item in arr:
if int(item) > 5:
i += 1
print(i)
お金が引き出せない銀行 [MISSION LEVEL: D]
难度D
あなたは残高からお金を引き出すプログラムを作成しています。
残高 n と引き出したい額 w が与えられます。
この時、引き出し額が残高を上回ってマイナスになる場合は "error" と出力し、引き出せる場合は残高を出力するプログラムを作成してください。
题目要求:输入一个数字n,然后输入w数字,如果w<n 则求n-w,否则输出error
答案
a = int(input())
b=int(input())
if b>a:
print("error")
else:
print(a-b)
隔離された街のゲート[MISSION LEVEL: B]
难度B
答案
from itertools import product
def create_coor_list(h,w,arr_s):
"""
U上への移動 : キャラクターの座標を (x, y) から (x, y + 1) へ変更する。
D下への移動 : キャラクターの座標を (x, y) から (x, y - 1) へ変更する。
L左への移動 : キャラクターの座標を (x, y) から (x - 1, y) へ変更する。
R右への移動 : キャラクターの座標を (x, y) から (x + 1, y) へ変更する
"""
flag = "valid"
coor_list = list()
c_a = coor_list.append
for i in range(h):
for j in range(w):
c_a((i,j))
#(x,y+1)
position_coor_dic = {"U":(0,1),"D":(0,-1),"L":(-1,0),"R":(1,0)}
now_coor = (0,0)
for i in range(len(arr_s)):
s = arr_s[i]
if s in ["U","D","L","R"]:
v = position_coor_dic.get(s)
now_coor = (now_coor[0]+v[0],now_coor[1]+v[1])
if now_coor not in coor_list:
flag = "invalid"
break
else:
raise ValueError("postion is error")
break
return flag
#子线程里不能用input
s = input() #"3 3 5"
arr = s.split(' ')
h= int(arr[0])# 3
w = int(arr[1])# 3
n = int(arr[2]) #5
arr_s=[]
for i in range(n):
s = input()
if s:
arr_s.append(s)
result=create_coor_list(h,w,arr_s)
print(result)
砂漠の公園 [MISSION LEVEL: B]
难度B
答案
#这个网址的特点,涉及到input的地方各种参数必须从0开始才能编译通过。
input_line = input()
n= int(input_line)
index=0
arr=list()
while index<n:
input_line= input()
arr.append(input_line)
index+=1
score_dict = {"W":"2","D":"1","L":"0"}
result_dic=dict()
for i in range(0,len(arr)):
input_str=arr[i].replace("-","")
result_dic[i+1] ="".join([score_dict[item] for item in input_str])
high_score = 0
team_number = 0
info_result = result_dic
for k,v in info_result.items():
w_count=v.count("2")
d_count=v.count("1")
l_count =v.count("0")
i_score = 2*w_count + 1*d_count
if i_score>high_score:
team_number = k
high_score = i_score
value=info_result[team_number]
w_count=value.count("2")
d_count=value.count("1")
l_count =value.count("0")
print("{team_number} {high_score} {w_count} {d_count} {l_count}".format(
team_number=team_number,
high_score=high_score,
w_count=w_count,
d_count=d_count,
l_count=l_count
))