实验吧解题笔记——编程(二)

来源:互联网 发布:西绪福斯 知乎 编辑:程序博客网 时间:2024/05/20 08:26

0.说明

每五个题目写作一篇writeup,第一行对应解题笔记(一)……
这里写图片描述

1.循环

题目描述

给出一个循环公式,对于一个整数n,当n为奇数时,n=3n+1,当n为偶数时,n=n/2,如此循环下去直到n=1时停止。

现要求对两个整数i = 900、j = 1000,输出i、j之间(包括i、j)的所有数进行上述循环时的最大循环次数(包括n和1)。

格式:CTF{xxx}

分析

这个题目比较简单,只需要注意总循环次数是从1开始而不是0开始即可,下面是代码

total_time = 0for num in range(900, 1000 + 1):    tmp_time = 1#循环次数从1开始    print('num' + str(num))    while True:        if num == 1:            total_time = max(total_time, tmp_time)            break        if num % 2 == 0:#偶数            num = num / 2            tmp_time += 1            continue        if num % 2 == 1:#奇数            num = 3 * num + 1            tmp_time += 1            continueprint(total_time)

2.小球下落

//TODO

3.求底运算

题目描述

已知K ^ N = P, 给定N为7,和P为4357186184021382204544,求K。

Flag格式:CTF{xxx}

分析

这个题实在是没什么好说的,初中数学…计算pow(P,1/7)即可,python会自动自动计算出一个浮点数的结果,但是考虑到其他语言可能不会计算出相同的结果,所以我们手动取整就行了。
这里写图片描述

4.普里姆路径

//TODO

5.大数模运算

//TODO

原创粉丝点击