求解:
joseph10個人,編號1到10,從1開始數,數到第三個就殺死,問最后剩下幾號?編程實作,用雙向鏈表、回圈都行
uj5u.com熱心網友回復:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
struct PEOPLE
{int people;
PEOPLE *next;
};
PEOPLE people[10];
for(int i=0; i<9;i++)
{people[i].people =i+1;
people[i].next =&people[i+1];
}
people[9].next =&people[0];
people[9].people =10;
//開始殺人
PEOPLE *p=&people[1];
while(p->next !=p)
{
//去掉下一個結點
ListBox1->AddItem(L"殺死:"+IntToStr(p->next->people),NULL);
p->next =p->next->next ;
p=p->next->next;
}
ListBox1->AddItem(L"最后剩下:"+IntToStr(p->people),NULL);
}
cb2010除錯通過,結果:
殺死:3
殺死:6
殺死:9
殺死:2
殺死:7
殺死:1
殺死:8
殺死:5
殺死:10
最后剩下:4
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/132772.html
標籤:基礎類
上一篇:求助 這個C語言怎么解釋
下一篇:C++頭檔案疑惑
