iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
SideProject30

UVA題型研究系列 第 24

DAY24:All You Need Is Love

  • 分享至 

  • xImage
  •  

31 UVA10193 All You Need Is Love
內容
IBM (International Beautiful Machines)公司發明了一種小玩意兒叫做「愛的算命機」。這台機器會回答你是否非常渴望愛情。這機器運作的情形是:請你輸入一僅含0和1的字串(稱為S),機器自己則定義一僅含0和1的字串(稱為L,Love的意思)。然後機器不斷的用S去減L(當然是2進位的減法),如果最後可以得到S=L,代表S是用Love做成的。如果最後L>S,代表S不是用Love做成的。
舉例說明:假設S="11011",L="11"。如果我們不斷的從S減去L,我們可以得到:11011、11000、10101、10010、1111、1100、1001、110、11。所以我們得到L了,也就是S是用Love做的。由於愛的算命機的某些限制,字串不可以有以0為開頭的,也就是說"0010101"、"01110101"、"011111"這些字串都是不合法的。另外,只有一個位元的字串也是不合法的。
輸入說明
輸入的第一列有一個整數N(N<10000),代表以下有幾組測試資料。每組測試資料2列,代表S1和S2字串,其長度都不會超過30個字元。你可以假設所有的字串都是合法的。
輸出說明
對每一組測試資料輸出以下其中之一:
Pair #p: All you need is love! Pair #p: Love is not all you need!
在這裡p代表這是第幾組測試資料。如果S1和S2至少可以找到一個合法的L,使得S1和S2都可以用Love做成,則輸出第一種訊息。否則,請輸出第二種訊息。請參考Sample Output。
範例輸入
5
11011
11000
11011
11001
111111
100
1000000000
110
1010
100
範例輸出
Pair #1: All you need is love!
Pair #2: Love is not all you need!
Pair #3: Love is not all you need!
Pair #4: All you need is love!
Pair #5: All you need is love!
題解:
找最大公因數
不是1就是love
是1就not love

import math  # 引入 math 模組,用於計算最大公因數

case = int(input())  # 讀取輸入,表示測試案例的數量

for i in range(case):  # 迭代處理每個測試案例
    print('Pair #', end='')  # 輸出測試案例編號(Pair#)並保持在同一行
    print(i + 1, end='')  # 輸出測試案例編號,i 從 0 開始,所以需要加 1

    # 讀取兩個二進位數字作為輸入,並計算它們的最大公因數
    if math.gcd(int(input(), 2), int(input(), 2)) == 1:  # 將輸入的二進位數字轉換為十進位並計算最大公因數
        print(': Love is not all you need!')  # 如果最大公因數為1,輸出此訊息
    else:
        print(': All you need is love!')  # 如果最大公因數不為1,輸出此訊息

上一篇
DAY23:Hartals 
下一篇
DAY25: Divide, But Not Quite Conquer!
系列文
UVA題型研究30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言