围绕着山顶有10个洞,一只兔子和一只老虎住在各自的洞里,老虎总想吃掉兔子,
一天兔子对老虎说,你想吃我有一个条件,你先把洞编号1到10,你从第10洞出发,
先到第1号洞找我,第二次隔一个洞找我,第三次隔两个洞找我,以后依次类推,次数不限,
若能找到我你就可以饱餐一顿,在没找到我之前不能停止,老虎一想只有10个洞,寻找的次数又不限,
哪有找不到的道理,就答应了条件,结果老虎跑得昏了过去也没找到兔子,请问兔子躲在哪个洞里。
程序中可假定老虎找了1000次

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
int main(){
int i; //设置兔子所在洞
int j; //老虎寻找次数
int Tiger_Seat;//老虎位置
int p; //判断变量
int Tiger_Selection_times;
printf("请输入老虎寻找次数\n");
scanf("%d",&Tiger_Selection_times );
for(i = 1;i <= 10;i++){
printf("放入兔子在%d号洞\n",i ); //设置兔子所在的洞
int Tiger_Seat = 10;
int p = 0;
for(j = 1;j<= Tiger_Selection_times;j++ ){
loop:if(Tiger_Seat <= 10){
if(i == Tiger_Seat){

printf("老虎在第%d次寻找后在%d号洞找到兔子\n",j,i);
p = 1;
break;
}else{
Tiger_Seat = Tiger_Seat + j;//这里修改寻找规则
}
}else{
//超过10号洞处理,也可以直接写前面。
Tiger_Seat = Tiger_Seat%10;
goto loop;
}
}

if(p == 0){
printf("\033[32m兔子在%d号洞暂时安全\033[0m\n",i );
}
}

return 0;
}