花瓣网设计官网,优化资源配置,江苏建设招标网,龙岩网络图书#x1f49d;#x1f49d;#x1f49d;欢迎来到我的博客#xff0c;很高兴能够在这里和您见面#xff01;希望您在这里可以感受到一份轻松愉快的氛围#xff0c;不仅可以获得有趣的内容和知识#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学… 欢迎来到我的博客很高兴能够在这里和您见面希望您在这里可以感受到一份轻松愉快的氛围不仅可以获得有趣的内容和知识也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂 非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。 ✨✨ 欢迎订阅本专栏 ✨✨ 博客目录 1.题目描述2.解决思路3.Java 代码实现 1.题目描述 一只兔子躲进了 10 个环形分布的洞中的一个。狼在第一个洞中没有找到兔子就隔一个洞到第 3 个洞去找也没有找到就隔 2 个洞到第 6 个洞去找以后每次多一个洞去找兔子……这样下去如果一直找不到兔子请问兔子可能在哪个洞中 2.解决思路 既然狼总是找不到兔子说明在某次寻找之后狼就进入了一个无限重复的循环当中根据题意我们可以得出一个递归公式 f(n)f(n-1)n n 1f(n)表示第 n 次找的洞 目前已知 f(1)1 f(1)1 f(2)3 f(3)6 f(4)10 f(5)15%105 当列到 21 次时发现开始重复了 前 20 项1 3 6 10 5 1 8 6 5 5 6 8 1 5 10 6 3 1 10 10 20 项后1 3 6 10… 为了方便理解,简单画了一个草图,可以清楚的看到狼每次走的桶位。 3.Java 代码实现
详细说一下题解代码,初始化一个容量为 10 的数组,然后在数组里面全部填充值为 1,代表兔可能存在的桶位。
因为题目说了可能出现追不上的情况,我们假设在 1000 次以内进入了一个狼追兔的死循环。
设 n 为狼走的步数, n (i 1);即为第 i1 次访问的桶位,因为是没找到的死循环,所以设置该桶位为 0。
最后遍历初始数据,当桶位的数值为 1 时表示没有被访问过,也是兔子可能躲藏的位置。
public class WolfFallingRabbit {public static void main(String[] args) {int[] a new int[10];// 设置数组初值for (int i 0; i 10; i) {a[i] 1;}int n 0;// 穷举搜索for (int i 0; i 1000; i) {n (i 1);int x n % 10;a[x] 0; // 未找到置0}// 输出结果for (int i 0; i 10; i) {if (a[i] 1) {System.out.println(可能在第 i 个洞);}}}
}觉得有用的话点个赞 呗。 ❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正 如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧