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

本文包含五个编程挑战的解决方案,涉及循环计算、求底运算等主题。通过具体实例展示了解题思路与实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 = 0
for 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
            continue
print(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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值