全国服务热线:400-6136-679

位置:南通童程童美少儿编程培训学校 > 学校动态 > C语言课堂 狼追兔子问题

C语言课堂 狼追兔子问题

来源:南通童程童美少儿编程培训学校时间:2020/3/28 11:49:36

  问题描述

  一只兔子躲进了10个环形分布的洞中的一个。狼在个洞中没有找到兔子,就隔一个洞,到第3个洞去找;也没有找到,就隔2个洞,到第6个洞去找;以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中?


  问题分析

  首先定义一个数组a[11],其数组元素为a[1],a[2],a[3]……a[10],这10个数组元素分别表示10个洞,初值均置为1。

  接着使用“穷举法”来找兔子,通过循环结构进行穷举,设大寻找次数为1000次。由于洞只有10个,因此第n次查找对应第n%10个洞,如果在第n%10个洞中没有找到兔子,则将数组元素a[n%10]置0。

  当循环结束后,再检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身于该洞中。

  下面是程序流程图:

  算法设计

  理解了问题分析中的递归处理过程后,算法设计就非常简单了。只需要将公式转换成一个函数,然后用main()函数调用它就可以了。

  下面是完整的代码:

  #include

  int age(int n)

  {

  int x;

  if(n == 1)

  x=10;

  else

  x=age(n-1)+2;

  return x;

  }

  int main()

  {

  int n;

  printf("请输入n值:");

  scanf("%d", &n);

  printf("第%d个人的年龄为%d ", n, age(n));

  return 0;

  }

  运行结果:

  可能在第2个洞

  可能在第4个洞

  可能在第7个洞

  可能在第9个洞

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/2498/news/169606/违者必究! 以上就是南通童程童美少儿编程培训学校 小编为您整理 C语言课堂 狼追兔子问题的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6136-679