经典狐狸逮兔子问题
2017-04-01 08:46
489 查看
问题描述:
围绕着山顶有10个圆形排列的洞,狐狸要吃兔子,兔子说:”可以,但必须找到我,我就藏于这10个洞中,你先到1号洞找,第二次隔1个洞(即3号洞)找,第三次隔2个洞(即6号洞)找,以后如此类推,次数不限.”但狐狸从早到晚进进出出了1000次,仍没有找到兔子.问:兔子究竟藏在哪个洞里?
问题延伸:
围绕着山顶有n个圆形排列的洞,玉玉要吃兔子,兔子说:“可以,但必须找到我,我就藏于这1..n个洞中,你先到1号洞找,第二次隔1个洞(即3号洞)找,第三次隔2个洞(即6号洞)找,以后如此类推,次数不限.”但玉玉从早到晚找了m次,仍没有找到兔子.问:兔子究竟藏在那个洞里?请输出兔子可能存在的洞号。若兔子无处可藏,输出-1
问题分析:
循环问题,反复取模,遍历检索,标记
围绕着山顶有10个圆形排列的洞,狐狸要吃兔子,兔子说:”可以,但必须找到我,我就藏于这10个洞中,你先到1号洞找,第二次隔1个洞(即3号洞)找,第三次隔2个洞(即6号洞)找,以后如此类推,次数不限.”但狐狸从早到晚进进出出了1000次,仍没有找到兔子.问:兔子究竟藏在哪个洞里?
问题延伸:
围绕着山顶有n个圆形排列的洞,玉玉要吃兔子,兔子说:“可以,但必须找到我,我就藏于这1..n个洞中,你先到1号洞找,第二次隔1个洞(即3号洞)找,第三次隔2个洞(即6号洞)找,以后如此类推,次数不限.”但玉玉从早到晚找了m次,仍没有找到兔子.问:兔子究竟藏在那个洞里?请输出兔子可能存在的洞号。若兔子无处可藏,输出-1
问题分析:
循环问题,反复取模,遍历检索,标记
#include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std; int b[10000+5]; int main() { int x,y; int m,n,z; while(scanf("%d%d",&y,&x)!=EOF) { m=1; n=1; z=0; memset(b,0,sizeof(b)); for(int i=1; i<=x; i++) { if(i==1) { b[i]=1; } else { m++; if(n+m>y) { n=(n+m-1)%y+1; b =1; //cout<<m<<' '<<n<<endl; } else { n=n+m; b =1; //cout<<m<<' '<<n+m<<endl; } } } for(int i=1; i<=y; i++) { if(b[i]==0) { z++; printf("%d ",i); } } if(z==0) { cout<<-1<<endl; } else { cout<<endl; } } return 0; }
相关文章推荐
- C++经典问题:狐狸找兔子
- 【经典算法】:狐狸抓兔子问题
- C++经典问题:狐狸找兔子
- 狐狸吃兔子问题算法
- 经典的100个C算法__(1)兔子问题
- 兔子问题 素数 水仙花数 三个经典C程序的解答 C知识回顾第一天
- 经典兔子问题
- java经典问题生兔子
- 狐狸与兔子问题
- Java递归算法经典实例(兔子问题、阶乘、1到100累加)
- 狐狸抓兔子的问题
- Fibonacci的【兔子数列】 以及 【狐狸找兔子】的问题 及 算法!
- Java经典兔子问题
- 经典兔子问题
- 【Java算法学习】斐波那契数列问题-兔子产子经典问题
- 经典兔子生育问题
- 经典问题--求兔子数量
- 递归算法基础 斐波那契问题几种实现方法 两个经典问题(兔子问题、奶牛问题)
- 每天一道算法--经典兔子繁殖迭代问题(斐波那契数列)
- 用C语言解决狐狸找兔子的问题