結果
| 問題 |
No.64 XORフィボナッチ数列
|
| コンテスト | |
| ユーザー |
rocoder
|
| 提出日時 | 2017-06-20 05:15:21 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,070 bytes |
| コンパイル時間 | 123 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 17,572 KB |
| 最終ジャッジ日時 | 2024-10-02 08:01:49 |
| 合計ジャッジ時間 | 7,076 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 2 WA * 4 TLE * 1 -- * 4 |
ソースコード
#xorf
import math
def tw(n):
t=1
k=0
while t<n:
t*=2
k+=1
# print (k)
t/=2
tt=[]
while n>0:
q=math.floor(n/t)
# print (q)
tt.append(q)
# print (tt)
q*=t
t/=2
n-=q
# print (n)
k-=1
# print (k)
while k>0:
tt.append(0)
# print (tt)
k-=1
return tt
def twe(li):
en=0
t1=1
i=len(li)-1
while i>=0:
en+=t1*li[i]
t1*=2
i-=1
return en
def xor(l0,l1):
l2=[]
for i in range(len(l1)):
if l0[i]!=l1[i]:
l2.append(1)
else:
l2.append(0)
return l2
F0,F1,N=(int(i) for i in input().split())
if N==0:
print (F0)
# print(int(F0))
elif N==1:
print(int(F1))
else:
F0=tw(F0)
F1=tw(F1)
Di=len(F0)-len(F1)
if Di>0:
Dk=[0]*Di
F1=Dk+F1
elif Di<0:
Di*=-1
Dk=[0]*Di
F0=Dk+F0
while N>1:
F2=xor(F0,F1)
F0=F1
F1=F2
N-=1
print(int(twe(F1)))
rocoder