問題描述
問題描述:有m(m>10)個敢死隊員要炸掉敵人的一碉堡,誰都不想去,排長決定用輪迴數數的辦法來決定哪個戰士去執行任務。如果前乙個戰士沒完成任務,則要再派乙個戰士上去。現給每個戰士編乙個號,大家圍坐成一圈,隨便從某乙個戰士開始計數,當數到8時,對應的戰士就去執行任務,且此戰士不再參加下一輪計數。如果此戰士沒完成任務,再從下乙個戰士開始數數,被數到第8時,此戰士接著去執行任務。以此類推,直到任務完成為止。
排長是不願意去的,假設排長為最後第m號,請你設計一程式,求出從第幾號戰士開始計數才能讓排長最後乙個留下來而不去執行任務。
分析
#include
#include
struct list ;
struct list * creatlist ()//建立空鍊錶
l->next=null;
return l;
} void initlist (struct list *l,int n)//將l初始化為無 頭結點的鍊錶
p->data=i;
p->next=null;
t->next=p;
t=p;
}p->next=l;
}int deletenode(int m)//假設從第乙個人開始數時,返回最後乙個出去的人的序號
temp=p->next;
p->next=temp->next;
free(temp);
p=p->next;
}return p->data;
}void answer ()
int main()
總結:
此類問題,關鍵在於得出一般公式。諸位可以嘗試排長排在第a個位置的情況(我還沒嘗試過)。
敢死隊問題
有m個敢死隊員要炸掉敵人的乙個碉堡,誰都不想去,排長決定用輪迴數數的辦法來決定哪個戰士去執行任務。如果前乙個戰士沒完成任務,則要再派乙個戰士上去。現給每個戰士編乙個號,大家圍坐成一圈,隨便從某乙個戰士開始計數,當數到5時,對應的戰士就去執行任務,且此戰士不再參加下一輪計數。如果此戰士沒完成任務,再從...
敢死隊問題
1.1.1分析論證 有m個敢死隊員要炸掉敵人的一碉堡,誰都不想去,排長決定用輪迴數數的辦法來決定哪個戰士去執行任務。如果前乙個戰士沒完成任務,則要再派乙個戰士上去。現給每個戰士編乙個號,大家圍坐成一圈,隨便從某乙個戰士開始計數,當數到5時,對應的戰士就去執行任務,且此戰士不再參加下一輪計數。如果此戰...
不敢死隊問題
不敢死隊問題 timelimit 1000ms memory limit 65536k 題目描述 說到 敢死隊 大家不要以為我來介紹電影了,因為資料結構裡真有這麼道程式設計題目,原題如下 有m 個敢死隊員要炸掉敵人的乙個碉堡,誰都不想去,排長決定用輪迴數數的辦法來決定哪個戰士去執行任務。如果前乙個戰...