iT邦幫忙

2021 iThome 鐵人賽

DAY 28
0
自我挑戰組

一起來探索Python語言系列 第 28

Python 練習

今天我們也要來解APCS的題目,今天是105年10月29的實作題第三題,那我們就開始吧!

題目

https://ithelp.ithome.com.tw/upload/images/20210928/20140468p0zUnIZjV7.png

解答

https://ithelp.ithome.com.tw/upload/images/20210929/20140468OQfGFCXjl5.png

a=input().split()               #此輸入N M K
N=int(a[0])
M=int(a[1])
K=int(a[2])

list=[]
x=0

for i in range(1,N+1):          #建立一個1到N的清單,例:N=5,建立[1,2,3,4,5]
    list.append(i)

for j in range(0,K):            #此迴圈運行K次,將已爆炸的數字刪除
    if (M+x)>N:                     #如果下個要爆炸的排序過遠,就要取餘數,要不然會超出清單
        del list[((M+x)%N-1)]
        x=(M+x)%N-1
    else:
        del list[(M+x)-1]
        x=(M+x)-1
    N=N-1                       #N為清單中個數
    

if x==N:                        #打印出上次爆炸的下一個數字
    print(list[0])
else:
    print(list[x])

以上是解答,然後今天所用到的語法不多,但是需要大量的思考,大家可以來想想看!我也有把解釋放旁邊,大家可以參考。


上一篇
Python 練習
下一篇
Python 練習
系列文
一起來探索Python語言30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言