iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
SideProject30

UVA題型研究系列 第 22

DAY22:Parity

  • 分享至 

  • xImage
  •  

v28 UVA10931 Parity
整數 n 的「同位元」定義為:其二進位表示法中每位元的和再除以 2 的餘數。例如:21 = 101012 的二進位有三個 1,因此它的同位元為 3 (mod 2),或 1。
在此,你要計算一個整數 1 ≤ I ≤ 2147483647 的同位元。
輸入說明
輸入的每一行有一個整數 I,而 I = 0 表示輸入結束,該行無需處理。
輸出說明
對於輸入中的每個整 I,你要印一行 The parity of B is P (mod 2).,其中 B 是 I 的二進位表示法。
範例輸入 #1
1
2
10
21
0
範例輸出 #1
The parity of 1 is 1 (mod 2).
The parity of 10 is 1 (mod 2).
The parity of 1010 is 2 (mod 2).
The parity of 10101 is 3 (mod 2).
這題需要用到兩個函數,一個是轉二進制的函數format(a,”b”)
以及算有轉進制後有多少個一的 函數count(“1”)
最前面也需要判斷輸入如果是一的話就要直接跳脫迴圈

#進入無窮迴圈,直到使用者輸入0為止
while True:
    # 讓使用者輸入一個整數
    a = int(input())

    #如果輸入為0,跳出迴圈
    if a == 0:
        break

    #將輸入的整數轉換為二進制表示法
    b = format(a, "b")

    #計算二進制表示法中1的個數,即為奇偶性
    c = b.count('1')

    #輸出結果,顯示二進制表示法及其奇偶性(mod 2)
    print('The parity of ' + str(b) + ' is ' + str(c) + ' (mod 2).')

上一篇
DAY21:Back to High School Physics
下一篇
DAY23:Hartals 
系列文
UVA題型研究30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言