結果
| 問題 |
No.64 XORフィボナッチ数列
|
| コンテスト | |
| ユーザー |
mathshab
|
| 提出日時 | 2017-06-23 08:16:40 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,443 bytes |
| コンパイル時間 | 133 ms |
| コンパイル使用メモリ | 12,800 KB |
| 実行使用メモリ | 11,136 KB |
| 最終ジャッジ日時 | 2024-10-02 13:08:07 |
| 合計ジャッジ時間 | 1,330 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 WA * 2 |
| other | AC * 3 WA * 8 |
ソースコード
#xorf
import math
def tw(n):
t=1
k=1
while t<=n//2:
t*=2
k+=1
# print (k)
tt=[]
while n>0:
q=n//t
# print (n)
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 xorf (l0,l1,N):
lel0=len(l0)
# lel1=len(l1)
# if lel0>lel1:
# lll=lel0
# lls=lel1
# else:
# lll=lel1
# lls=lel0
# print(l1)
l2=[0]*len(l0)
R=N%3
for i in range (lel0):
a=l0[lel0-i-1]
# print("a")
b=l1[lel0-i-1]
if a==0 and b==0:
c=0
elif a==0 and b==1:
if R==0:
c=0
else:
c=1
elif a==1 and b==0:
if R==1:
c=0
else:
c=1
l2[lel0-i-1]=c
return l2
F0,F1,N=(int(i) for i in input().split())
#print (F0)
if N==0:
print (F0)
# print(int(F0))
elif N==1:
print(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
# print(F0)
F2=xorf(F0,F1,N)
print(twe(F2))
mathshab