a271: 彩色蘿蔔
'''
題目會先提供測試的數量,接著提供第二筆資料 x、y、z、w、n,、m 六個數字,
六個數字分別代表「紅蘿蔔吃了胖 xg,白蘿蔔吃了胖 yg,黃蘿蔔吃了瘦 zg,
發霉的蘿蔔吃了瘦 wg ( 附加中毒 ),
中毒會使兔子每天瘦 ng ( 中毒當天不算 ),中毒狀態可累加,
m 是兔子初始的體重 ( 早上先中毒,晚上才吃東西 )。
接著第三筆資料為一串每天吃什麼的對照數字,1 代表紅蘿蔔,
2 代表白蘿蔔,3 代表黃蘿蔔,4 代表黑蘿蔔,0 代表沒吃。
如果體重有在任意時刻少於等於 0,輸出:「bye~Rabbit」,
不然就印出結束時的體重。
'''
num = int(input('輸入測資的筆數-->')) # 題目次數
for j in range(num): # 重複幾題
x,y,z,w,n,m = map(int, input('第一行是x,y,z,w,n,m-->').split()) # 取得 x、y、z、w、n,、m 的數字
role = {'0':0, '1':x, '2':y, '3':-z, '4':-w} # 定義吃蘿蔔對應的字典檔
try:
days = input('第二行一串數字,1紅蘿蔔,2白蘿蔔,3黃蘿蔔,4黑蘿蔔,0代表沒吃-->').split() # 取得每天的狀態
gg = 0 # 中毒幾次
for i in days:
print(i,end='')
m = m - gg*n # 每天體重因為中毒變成多少
if m <= 0: break # 如果體重小於 0,跳出迴圈
if i == '4':
gg = 1 # 如果狀態為 4,中毒次數增加 1
m = m + role[i] # 體重因為狀態增加或減少
print ('--',m)
if m <= 0: break # 如果體重小於 0,跳出迴圈
if m <= 0:
print('\n bye~Rabbit') # 如果體重小於等於 0,印出 bye~Rabbit
else:
print('\n體重=> ',f'{m}g') # 如果體重大於 0,印出體重
except:
print(f'{m}g') # 如果程式中途結束,印出體重
Python 3.7.9 (bundled)
>>> %Run a271.py
輸入測資的筆數-->1
第一行是x,y,z,w,n,m-->5 3 2 4 3 10
第二行一串數字,1紅蘿蔔,2白蘿蔔,3黃蘿蔔,4黑蘿蔔,0代表沒吃-->1 1 2 3 3 3 3 4 3 3
1-- 15
1-- 20
2-- 23
3-- 21
3-- 19
3-- 17
3-- 15
4-- 11
3-- 6
3-- 1
體重=> 1g
>>> %Run a271.py
輸入測資的筆數-->1
第一行是x,y,z,w,n,m-->5 3 2 4 3 10
第二行一串數字,1紅蘿蔔,2白蘿蔔,3黃蘿蔔,4黑蘿蔔,0代表沒吃-->1 1 2 3 3 3 3 4 3 3 2 2 2 2 2 2 2
1-- 15
1-- 20
2-- 23
3-- 21
3-- 19
3-- 17
3-- 15
4-- 11
3-- 6
3-- 1
2
bye~Rabbit
>>>
沒有留言:
張貼留言