1005 继续(3n+1)猜想(c++实现)

本文介绍了一种使用双数组优化算法的策略,通过a数组记录关键字,b数组标记已覆盖数值,避免重复判断,提高效率。并提出了升级版思路,利用C++的vector动态调整输入,结合10000大小的数组标记递推过程中的数,最终实现快速排序和输出。强调了实践的重要性。

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

题目描述


思路解析
  1. 开两个数组,a数组用来记录关键字,b数组用来存储前面的数已经覆盖不用继续再判断的数。
  2. 判断一个数时,先判断b数组中有没有这个数,如果有,直接判断下一个数,如果没有,把这个数存进a数组,然后把这个数在递推过程中产生的数都存进b数组,直到最后一个数。
  3. 对a数组进行递减排序然后输出。注意格式。

升级版思路解析

借用c++的vector可直接扩充输入的n,输入一个数,判断一次,同时开一个数组大小为10000,(实验证明开到5000也可以),将每一个递推过程中产生的数置为1,最后排序直接输出0的数即可。

还是要多练啊…

代码详见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值