算法:狐狸吃兔子问题(约瑟环)
来源:互联网 发布:淘宝买家v4是什么级别 编辑:程序博客网 时间:2024/04/28 01:26
围绕着山顶有10个洞,一只狐狸和一只兔子各住一个洞。狐狸总想吃掉兔子。一天兔子对狐狸说:“你想吃我有一个条件,先把洞从1~10编上号,你从10号洞出发,先到1号洞找我;第二次隔1个洞找我,第三次隔2个洞找我,以后依此类推,次数不限。若能找到我,你就可以饱餐一顿。不过在没有找到我以前不能停下来。”狐狸满口答应就开始找了,它从早到晚找了N次洞,累得昏了过去也没有找到兔子。请问,狐狸昏倒在哪一个洞里?免子可能躲在哪些洞里?
输入
输入一个正整数N(1<=N<=1000)
输出
第一行:输出兔子可以躲在的洞的编号 第二行:狐狸昏倒时所在洞的编号
样例输入 3
样例输出
2 4 5 7 8 9 10
6
分析:
- d1 = 1 => 1
- d2 = 1 + 2 => 3
- d3 = 3 + 3 => 6
- d4 = 6 + 4 => 10
- d5 = 10 + 5 => 15 => 5
- d6 = 5 + 6 => 11 => 1
…….
以此类推
可以得出dn = (n-1+n) %10
代码如下:
# include "stdio.h"isDay(int last, int day){ last = (last+day)%10; // 求余 if(last == 0) return 10; else return last;}int main(){ int wo[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // 对兔子窝的原始状态进行标记 int days; int dong = 10, i; printf("请输入天数:"); scanf("%d", &days); for (i=1; i<=days; i++) { dong = isDay(dong, i); wo[dong] = 1; } for (i=1; i<11; i++) { if(wo[i]==0)//浪没有找过的窝 printf("%d ", i); } printf("\n%d ",dong); //最后一天浪所在的洞 return 0;}
阅读全文
0 0
- 算法:狐狸吃兔子问题(约瑟环)
- 狐狸吃兔子问题算法
- 简单反汇编之狐狸吃兔子算法
- 【经典算法】:狐狸抓兔子问题
- 狐狸抓兔子的问题
- 经典狐狸逮兔子问题
- Fibonacci的【兔子数列】 以及 【狐狸找兔子】的问题 及 算法!
- C++经典问题:狐狸找兔子
- 用C语言解决狐狸找兔子的问题
- C语言中狐狸找兔子的问题
- 狐狸找兔子 C++
- 狐狸找兔子VB
- 狐狸逮兔子
- 狐狸抓兔子(实验楼的练习)
- 关于兔子吃萝卜问题,走一步吃个萝卜。
- 生兔子问题(递归算法)
- 兔子算法问题
- 兔子问题----算法基础
- SSH协议
- JAVA基础之反射基础篇一
- ArcGIS API for JavaScript代码框架理解
- c++实现身份证是否合法判断函数
- 深入理解linux系统下proc文件系统内容
- 算法:狐狸吃兔子问题(约瑟环)
- 面向对象编程思想-观察者模式
- Collider(碰撞体)和Trigger(触发器)测试
- [转]如何在git中删除指定的文件和目录
- div制作表格
- php中单引号与双引号
- HDU题目分类
- JVM垃圾收集器
- 【adb】adb 报错 solution