有一隊士兵,確切人數不知,但若每3人一組,則餘2人;
每5人一組,餘3人;每7人一組,餘5人;每11人一組,餘4人。
請解答下列問題:
⑴至少有多少人?
⑵若已知人數在5000~10000之間,問有多少個答案?
解:初學者容易想到用逐個試探的方法來求解,
這樣顯然很耗時間,特別是在所求解的值非常大時。
如何做到這一點?
以累加前面各數的最小公倍數來試探。
由此得到求解的程式段。
#include using namespace std;
int main(int argc, char** ar**)
cout<<"所有滿足要求的數量如下:"《所有滿足要求的數量如下:
5108
6263
7418
8573
9728
--------------------------------
process exited after 0.1292 seconds with return value 0
另外可以用中國剩餘定理求解:
中國剩餘定理詳解:
C 韓信點兵
相傳韓信才智過人,從不直接清點自己軍隊的人數,只要讓士兵先後以三人一排 五人一排 七人一排地變換隊形,而他每次只掠一眼隊伍的排尾就知道總人數了。輸入包含多組資料,每組資料報含3個非負整數a,b,c,表示每種隊形排尾的人數 a 3,b 5,c 7 輸出總人數的最小值 或報告無解 已知總人數不小於10,...
韓信點兵問題通解
韓信點兵問題通解 吳旻泰巖網路工作室 設士兵總數為最少為s,有s除以3得z餘a,s除以5得y餘b,s除以7得x餘c。即 s 7x c 5y b 3z a x,y,z,a,b,c均為 0的整數 易得,7x c b 5y 7x c a 3z 整理,x 2x c b 5 y 2x x c a 3 z 移項...
C語言 韓信點兵
題目描述 在中國數學史上,廣泛流傳著乙個 韓信點兵 的故事 韓信是漢高祖劉邦手下的大將,他英勇善戰,智謀超群,為漢朝建立了卓越的功勞。據說韓信的數學水平也非常高超,他在點兵的時候,為了知道有多少兵,同時又能保住軍事機密,便讓士兵排隊報數 按從1至5報數,記下最末乙個士兵報的數為1 再按從1至6報數,...