だから私はPythonでこのコードを持っていますが、数値が大きすぎてPythonが処理できないため、実行されません.Cobraのように、C ++とほぼ同じように高速に動作し、このようなタスクを処理できることがわかりました。自分でコードを書き直そうとしましたが、コンパイル エラーが発生し続け、オンライン コンパイラtio.runでコンパイルしています。
元のコードは次のとおりです。
def fib(n):
a = 0
b = 1
for _ in range(n):
a, b = b, a + b
return a
def power(x, e, n):
return pow(x, e) % n
def get_hash_sum():
n = power(power(13371337, 0xdeadbeeffeeddeef, 0xffffffffffffffff), 0xcafecafeabcd, 0xfffffff)
res = 0
while n > 0:
res += fib(n)
n = n // 2 if n % 2 == 0 else (n - 1) // 2
return res & 0xffffffffffffffff
def main():
print(f'Flag is Course{{{get_hash_sum()}}}')
if __name__ == '__main__':
main()
そして、これは、インターネット上のpythonとcobraの違いに関する私の調査に基づいて書き直そうとした結果です。これはかなり貧弱です。
class Fibb
def fib(n)
a = 0
b = 1
for _ in range(n)
a, b = b, a + b
return a
class Pow
def power(x, e, n)
return pow(x, e) % n
class Hash
def get_hash_sum()
n = Pow.power(Pow.power(13371337, 0xdeadbeeffeeddeef, 0xffffffffffffffff), 0xcafecafeabcd, 0xfffffff)
res = 0
while n > 0
res += Fibb.fib(n)
n = n // 2 if n % 2 == 0 else (n - 1) // 2
return res & 0xffffffffffffffff
class Program
def main
print(f'Flag is Course{{{Hash.get_hash_sum()}}}')