C语言——狐狸和兔子的故事
生活随笔
收集整理的這篇文章主要介紹了
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 }?
總結
以上是生活随笔為你收集整理的C语言——狐狸和兔子的故事的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql定时备份及删除历史数据
- 下一篇: 使用最小二乘法拟合二次函数