NYOJ 34 韓信點兵 數論

2021-06-05 22:37:38 字數 628 閱讀 4994

解題思路:

剛開始學演算法時候寫的這道題,因為資料比較小,從10到100,所以當時是暴力列舉的。

昨天看到了正確的解法:

原理:1.因為這個數能被5和7整除而不能被3整除,所以肯定是5和7的倍數,也就是35k,但是我們需要保證被3除的結果是a,所以我們令k=2,這樣,70k%3=1,而k=1時,35k%3=2,所以,能被5和7整除不能被3整除且餘數為a的數為70a。

2.被3和7整除,不能被5整除,則為21k,k=1時,正好餘1,所以這個數為21b。

3.被3和5整除,不能被7整除,則為15k,k=1時,正好餘1,所以這個數為15c。

所以,這個數為70a+21b+15c,又因為3、5、7的最小公倍數為105,所以這個數肯定在0到105以內,所以對結果取餘一下即可。

推廣到其他情況也是同樣道理。

比如,求除以5、7、11以後所得餘數為a,b,c.則這個數是:231a+330b+210c,然後對5×7×11=385取餘即可。

**如下:

#include#include#include#include#includeusing namespace std;

int main()

return 0;

}

NYOJ 34韓信點兵

描述 相傳韓信才智過人,從不直接清點自己軍隊的人數,只要讓士兵先後以三人一排 五人一排 七人一排地變換隊形,而他每次只掠一眼隊伍的排尾就知道總人數了。輸入3個非負整數a,b,c 表示每種隊形排尾的人數 a 3,b 5,c 7 輸出總人數的最小值 或報告無解 已知總人數不小於10,不超過100 輸入 ...

NY OJ34 韓信點兵

時間限制 3000 ms 記憶體限制 65535 kb 難度 1 輸入輸入3個非負整數a,b,c 表示每種隊形排尾的人數 a 3,b 5,c 7 例如,輸入 2 4 5 輸出輸出總人數的最小值 或報告無解,即輸出no answer 例項,輸出 89 樣例輸入 2 1 6樣例輸出 41描述 相傳韓信才...

nyoj 34 韓信點兵

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