#13152: Python TLE 求改善


andy940255 (Andy)

學校 : 國立臺灣科技大學
編號 : 70928
來源 : [123.110.238.179]
最後登入時間 :
2024-02-21 00:07:29
a414. 位元運算之進位篇 -- c910335 | From: [1.174.31.197] | 發表日期 : 2017-12-20 15:30

def P(n):
return int(bin(int(n)).replace('0','',1).replace('b', ''))
A = P(input())
while A != 0 :
Q, C = [], 0
if A == 0:
continue
for i in str(A) :
Q.insert(0,int(i))
for i in Q:
if i == 1:
C += 1
else:
break
print(C)
A = P(input())

 
#13153: Re:Python TLE 求改善


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [114.42.180.252]
最後登入時間 :
2024-05-17 15:04:41
a414. 位元運算之進位篇 -- c910335 | From: [36.232.39.190] | 發表日期 : 2017-12-20 17:16

 


2 種方式給您參考

1)  轉為 2 進位,找到右邊數過來第一個 0 的位置

2)  mod 2 == 1 則加 1 , mod 2 == 0 ... quit

 
#13154: Re:Python TLE 求改善


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [114.42.180.252]
最後登入時間 :
2024-05-17 15:04:41
a414. 位元運算之進位篇 -- c910335 | From: [36.232.39.190] | 發表日期 : 2017-12-20 17:19

 


2 種方式給您參考

1)  轉為 2 進位,找到右邊數過來第一個 0 的位置

2)  mod 2 == 1 則加 1 , mod 2 == 0 ... quit



第 2 種方式 mod 後要除以 2

 
ZeroJudge Forum