zoukankan      html  css  js  c++  java
  • 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("
    %d 
    ",find_rabbit(n));
    38 
    39     
    40 }
  • 相关阅读:
    最大子序列和问题的几种算法
    给Repeater控件里添加序号的5种方法
    关于上传(上传所用到的upload和upload的应用)
    .net中的动态时钟 (年月日 时分秒)
    网页总结
    PHP算法将数字金额转换成大写金额
    Linux下编译安装redis,详细教程
    如何让PHP支持Redis
    网络互连技术——第一章随记
    网络互连技术——第二章考试需知
  • 原文地址:https://www.cnblogs.com/LinSL/p/7395676.html
Copyright © 2011-2022 走看看