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