A970199363 2020-10-07 14:04 采纳率: 50%
浏览 70
已采纳

请问这段代码最终结果该怎么算,请问有大佬教教我吗?

n = 1926081719260817

f = [0, 1, 1]

for i in range(3, n + 1):
f.append( ( f[i - 1] + f[i - 2] ) % n )

flag = "cnss{" + hex(f[n])[2:] + "}"
print(flag)
————————————————————
#include
int main()
{
long long int n =1926081719260817;
long long int a = 1, b = 1, c, i = 1;
while (i < n)
{
i++;
c = a;
a = b%n;
b = a + c;

}
a=a%n;
printf("%lld", a);
return 0;

}

  • 写回答

1条回答 默认 最新

  • 阿芒Aris 2020-10-07 15:12
    关注

    这个f实现的是一个斐波那契数列,就是 0 1 1 2 3 5 8 13 21...这个数列,这也就是为什么f最开始存的是0 1 1,之后每次迭代实现依次相加

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看