C語言狼追兔子問題
一只兔子躲進了 10 個環(huán)形分布的洞的某一個,狼在第一個洞沒有找到兔子,就隔一個洞,到第三個洞去找,也沒有找到,就隔兩個洞,到第六個洞去找,以后每次多隔一個洞 去找兔子……這樣下去,結果一直找不到兔子,請問:兔子可能躲在哪個洞中?
算法思想
對于本實例中提到的問題,雖然是“兔子可能躲在哪個洞中”,但是在考慮算法時,需要知道的是狼會去哪個洞找兔子,狼第一次去的洞是第一個(表示為 pos1),第二次去的是第三個(pos3),把它去的洞的代碼用數(shù)字表示出來,可以推導出狼去的洞的代碼是: pos(i+1)=pos(i)+i+1。
由題目可知,狼沒有找到兔子,因此該算法會一直持續(xù)下去。除此之外,還需要注意的是,在 10 個洞之后,比如狼去找第十五個洞,但第十五個洞是不存在的,因此我們用 15 對 10 求余,得到的數(shù)字才是洞的標示。
程序代碼
#include <stdio.h>
int main()
{
int i;
bool pos[10]={0};
int lang=0;
for(i=0;i<100;i++)
{
pos[lang]=true;
lang++;
lang+=i;
lang=lang%10;
}
for(i=0;i<10;i++)
if(!pos[i])
printf("兔子可能在第%d洞中\(zhòng)n",i+1);
return 0;
}</stdio.h>
調試運行結果
通過上面的算法分析,狼在找兔子的過程中,為了達到找到兔子的目的,同時為了設計需要,增加了循環(huán)次數(shù),最終程序的結果如下所示:
兔子可能在第3洞中
兔子可能在第5洞中
兔子可能在第8洞中
兔子可能在第10洞中
總結
(1) 一維數(shù)組定義時需要注意的規(guī)則:
① 數(shù)組名的命名規(guī)則遵守標識符的命名規(guī)則。
② 常量表達式指出數(shù)組的長度,當長度為 n 時,即數(shù)組為 n 個元素,數(shù)組元素下標范圍只能是 0~(n—1),即數(shù)組中第一個元素的下標為 0,數(shù)組中最后一個元素的下標應該是(n—1)。
③ 常量表達式可以包含常量和符號常量,但是不能包含變量。
④ 在定義數(shù)組的說明中,可以有多個數(shù)組說明符,用逗號隔開即可。
(2) 一維數(shù)組的引用說明:
① 數(shù)組下標可以是整型常量、整型變量或者整型表達式,初始值為 0。
② 一個數(shù)組元素引用的實質就是一個變量名的引用,每一個數(shù)組元素代表內(nèi)存中的一個存儲單元,具有與相同類型單個變量一樣的屬性,可以對它進行賦值且參與各種運算,一個數(shù)組占有一段連續(xù)的存儲單元。
③ 在 C 語言中,數(shù)組不能作為一個整體參加數(shù)據(jù)運算,只能對單個元素進行計算。
作者:大學生新聞網(wǎng) 來源:大學生新聞網(wǎng)
- C語言誰家孩子跑得最慢
- 張、王、李三家各有三個小孩。一天,三家的九個孩子在一起比賽短跑,規(guī)定不分年齡大小,跑第一得 9 分,跑第二得 8 分,依次類推。
- 03-09 關注:0
- C語言狼追兔子問題
- 一只兔子躲進了 10 個環(huán)形分布的洞的某一個,狼在第一個洞沒有找到兔子,就隔一個洞,到第三個洞去找
- 03-09 關注:0
- C語言兔子生兔子問題
- 假設一對兔子的成熟期是一個月,即一個月可長成成兔,那么,如果每對成兔每個月都生一對小兔
- 03-09 關注:0
- C語言矩陣轉置
- 本實例是利用數(shù)組解決線性代數(shù)中的矩陣轉置問題。
- 03-09 關注:0
- C語言求回文素數(shù)
- 任意的整數(shù),當從左向右讀與從右向左讀是相同的,且為素數(shù)時,稱為回文素數(shù)。求 1000 以內(nèi)的所有回文素數(shù)。
- 03-09 關注:0