求m可以被n整除的數 深搜剪枝題

2022-06-26 06:39:16 字數 615 閱讀 8408

給乙個數n,讓你找出乙個只由0,和1組成的十進位制數m,

要求這個正整數m可以被n整除.

輸入格式

輸入乙個整數n(1<=n<200)

輸出格式

對於輸入整數n的每乙個值,輸出m的相應值,保證有乙個

數字長度小於19位的數字.如果有乙個給定值n有多個解,

其中任何乙個都是可以接受的.

題解:乙個cnt記錄位數,對應m值,搜尋加0或者加1;不用遍歷每個數值,如果一旦找到,輸出就行,不用往下搜尋.這個剪枝比較不太明顯

**如下

#include using namespace std;

int n;

bool flag=false;

void dfs(long long m, int cnt)

if (flag)

if (m % n == 0)

dfs(m * 10 + 0, cnt + 1);

dfs(m * 10 + 1, cnt + 1);

}int main()

深搜剪枝 數的劃分

時間限制 1 sec 記憶體限制 128 mb 提交 16 解決 10 提交 狀態 討論版 命題人 add cy 將整數n分成k份,且每份不能為空,任意兩種劃分方案不能相同 不考慮順序 例如 n 7,k 3,下面三種劃分方案被認為是相同的。1 1 5 1 5 1 5 1 1 問有多少種不同的分法。n...

hdu 求n!是否能被m整除

個人覺得這是一道好題,用到了乙個我我熟悉的知識點。題目鏈結 首先求出m的所有質因子 p1,p2.pk 及其個數 s1s,s2.sk 然後再求n階乘中的因子 p1,p2.pk 個數是否大於 s1,s2.sk 問題的關鍵在於如何求n!中的質因子pi的個數,請看下面 int sum 0 while n p...

C 陣列連線求能被7整除的數

2018美團點評程式設計題2 思路 若乙個整數的個位數字截去,再從餘下的數中,減去個位數的2倍,如果差是7的倍數,則原數能被7整除。如果差太大或心算不易看出是否7的倍數,就需要繼續上述 截尾 倍大 相減 驗差 的過程,直到能清楚判斷為止。例如,判斷133是否7的倍數的過程如下 13 3 2 7,所以...