ACM複習(1)1077 韓信點兵

2021-08-09 09:08:29 字數 941 閱讀 5856

description

相傳漢高祖劉邦問大將軍韓信統御兵士多少,韓信答說,每3人一列餘1人、5人一列餘2人、7人一列餘4人、13人一列餘6人、 17人一列餘2人、19人一列餘10人、23人一列餘1人、29人一列餘11人。

劉邦茫然而不知其數。你呢? 你是一位優秀的程式設計師,請你幫劉邦解決這一問題。

輸入格式

要求由鍵盤輸入a,b,c,d,e,f,g,h,a,b,c,d,e,f,g,h十六個數,分別代表每a人一列餘a、每b人一列餘b、每c人一列餘c、每d人一列餘d、每e人一列餘e、每f人一列餘f、每g人一列餘g、每h人一列餘h,其中a,b,c,d,e,f,g,h為互不相等的質數

輸出格式

輸出總兵士數,要求輸出滿足條件的最小的乙個,但要滿足8種排法的每一種排法至少可排一列。(保證給的資料,有結果且計算的結果不會超過2的63次方)

輸入樣例

2 3 5 7 11 13 17 19

1 1 1 1 1 1 1 1

輸出樣例

9699691

解題思路:

有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二。問物幾何?

上面的描述是《孫子算經》裡面的乙個題目,是不是和本題類似?

以前看過《孫子算經》的這個題目,知道了『剩餘定理』,那麼這道題用剩餘定理解決就行了

#include

int main()

for(int i = 0; i<8; i++)

scanf("%ld", &b[i]);

for(int i = 0; i<8; i++)

for(int j = 1; ;j++)

}total = flag % n;

printf("%lld\n",total < max ? total + n : total);

}

韓信點兵python演算法 韓信點兵演算法

秦朝末年,楚漢相爭。一次,韓信將1500名將士與楚王大將李鋒交戰。苦戰一場,楚軍不敵,敗退回營,漢軍也死傷四五百人,於是韓信整頓兵馬也返回大本營。當行至一山坡,忽有後軍來報,說有楚軍騎兵追來。只見遠方塵土飛揚,殺聲震天。漢軍本來已十分疲憊,這時隊伍大譁。韓信兵馬到坡頂,見來敵不足五百騎,便急速點兵迎...

南陽ACM34 韓信點兵

題目34 韓信點兵 時間限制 3000 ms 記憶體限制 65535 kb 難度 1 描述 相傳韓信才智過人,從不直接清點自己軍隊的人數,只要讓士兵先後以三人一排 五人一排 七人一排地變換隊形,而他每次只掠一眼隊伍的排尾就知道總人數了。輸入3個非負整數a,b,c 表示每種隊形排尾的人數 a 3,b ...

韓信點兵演算法

孫子算經 中給出這類問題的解法 三三數之剩二,則置一百四十 五五數之剩三,置六十三 七七數之剩二,置三十 並之得二百三十三,以二百一十減之,即得。凡三三數之剩一,則置七十 五五數之剩一,則置二十一 七七數之剩一,則置十五,一百六以上,以一百五減之,即得。用現代語言說明這個解法就是 首先找出能被5與7...