C_狐狸和兔子的故事

题目描述

围绕着山顶有10个洞,一只狐狸和一只兔子各住一个洞。狐狸总想吃掉兔子。一天兔子对狐狸说:“你想吃我有一个条件,先把洞从1~10编上号,你从10号洞出发,先到1号洞找我;第二次隔1个洞找我,第三次隔2个洞找我,以后依此类推,次数不限。若能找到我,你就可以饱餐一顿。不过在没有找到我以前不能停下来。”狐狸满口答应就开始找了,它从早到晚找了N次洞,累得昏了过去也没有找到兔子。请问,狐狸昏倒在哪一个洞里?免子可能躲在哪些洞里?

输入

输入一个正整数N(1<=N<=1000)

输出

第一行:输出兔子可以躲在的洞的编号
第二行:狐狸昏倒时所在洞的编号

样例输入
3
样例输出
2 4 5 7 8 9 10
6

 

 1 /************
 2     变量定义:
 3     n:一共找n次洞
 4     k:第k次找洞(1<= k <=n)
 5 
 6     find_rabbit: 返回第k次找到的洞的号数。
 7 
 8 **********/
 9 #include <stdio.h>
10 int find_rabbit(int k){
11     if(k==1){
12         return 1;/*第一次在1号洞*/
13     }else{
14         if((find_rabbit(k-1) + k)%10 == 0){
15             return 10;
16         }else{
17             return (find_rabbit(k-1) + k)%10;
18         }
19     }
20 }
21 void main(){
22     int i,holes[10];
23     int n=24;
24     for(i=0; i<10; i++){
25         holes[i] = 1;/*初始化为1,1代表狐狸没有去过的洞*/
26     }
27     
28     for(i=1; i<=n; i++){
29         holes[find_rabbit(i)-1] = 0;/*eg:第一次在1号洞,即holes[0]置为0,使用index要减1,0代表狐狸去过的洞*/
30     }
31 
32     for(i=0; i<10;i++){
33         if(holes[i] == 1){
34             printf("%d ",i+1);/*因为i是从0开始的,所以加1*/
35         }
36     }
37     printf("\n%d \n",find_rabbit(n));
38 
39     
40 }

 

转载于:https://www.cnblogs.com/LinSL/p/7395676.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值