iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0
SideProject30

UVA題型研究系列 第 12

DAY12:Jolly Jumpers

  • 分享至 

  • xImage
  •  

15 UVA10038 Jolly Jumpers
內容
有n個整數的序列我們稱為jolly jumper,如果相鄰的2個數其差的絕對值恰好為1到n-1。例如:

1 4 2 3

就是jolly jumper(n=4)。因為相鄰2數的差的絕對值為3,2,1,就是1到n-1。但是

1 4 2 -1 6

不是jolly jumper(n=5)。因為相鄰2數的差的絕對值為3,2,3,7,並非1到n-1。

你的任務是寫一個程式來判斷一個整數序列是否為jolly jumper。

輸入說明
每組測試資料一列,第一個正整數為 n(n < 3000),代表此整數序列的長度。接下來有n個整數,代表此整數序列。請參考Sample Input。
輸出說明
對每一組測試資料,輸出此整數序列是否為jolly jumper。請參考Sample Output。
範例輸入 #1
4 1 4 2 3
5 1 4 2 -1 6
範例輸出 #1
Jolly
Not jolly
題意:有n個整數的序列我們稱為jolly jumper,如果相鄰的2個數其差的絕對值恰好為1到n-1

解題:輸入一串數字,輸出是否為 Jolly Jumper

while True:
    try:
        n = list(map(int, input().split()))  # 讀取一行輸入並將其拆分成整數列表
    except EOFError:
        break  # 如果遇到EOFError(通常表示輸入結束),則跳出迴圈

    r = n[0]  # 第一個元素是整數r,表示序列的長度
    y = 0  # 初始化計數器y,用於統計符合條件的差的絕對值
    x = []  # 創建一個空列表x,用於存儲差的絕對值

    for i in range(1, r):
        m = abs(n[i + 1] - n[i])  # 計算相鄰整數的差的絕對值並加入列表x
        x.append(m)

    x.sort()  # 對列表x進行排序,以便後續比較

    for a in range(1, r):
        if x[a - 1] == a:  # 檢查排序後的列表中是否包含1到r-1的所有差的絕對值
            y += 1

    if y == r - 1:
        print("Jolly")  # 如果y等於r-1,則輸出 "Jolly",表示為 "Jolly Jumper" 序列
    else:
        print("Not jolly")  # 否則輸出 "Not jolly",表示不是 "Jolly Jumper" 序列

上一篇
DAY11:date judgment
下一篇
DAY13:Probability of success
系列文
UVA題型研究30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言