2022年8月24日 星期三

Python a271: 彩色蘿蔔

 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

>>> 

沒有留言:

張貼留言

2024_09 作業3 以Node-Red 為主

 2024_09 作業3  (以Node-Red 為主  Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker  2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...