任意給定乙個正整數n,求乙個最小的正整數m(m >1),使得n * m 的十進位制表示形式裡只含有1 和0,例如:
noupdate++; //未更新
else
noupdate=0;
//如果經過乙個迴圈節都沒能對bigint進行更新,就是無解
//如果v[0].empty不為空,已經找到解
if(noupdate==n||(!v[0].empty()))
break;
} if(v[0].empty())
cout<
for(iter=v[0].begin();iter!=v[0].end();iter++)
//cout<
}int main()
程式設計之美2 8 找符合條件的整數
問題 任意給定乙個正整數n,求乙個最小的正整數m m 1 使得n m的十進位制表示形式裡只含有1和0。解法 由於沒有直接的數學方法能幫我們直接得到m的值,所以我們只能進行搜尋。由於相對m,乘積n m具有明顯的特徵,需要搜尋的空間要小很多,所以我們對乘積n m進行搜尋。如果n m的結果有k位,則要迴圈...
程式設計之美2 8 找符合條件的整數
這個題目是,給定乙個整數 n,需要尋找另外乙個整數 m,使得 n m 得到的結果十進位制表示中只存在1和0兩個數字。首先看到這個題目,第一思想肯定是 使 m 1,並依此遞增 m 的值,直到 n m 獲得想要的效果,但是,如果 n 很大呢,那麼計算量也是很大的,所以,我們需要尋求更好的解決辦法。書中提...
程式設計之美2 8 找符合條件的整數
書上面講的很好,程式也寫得很巧妙。最主要的一句話 只需要將10k n的結果與餘數資訊陣列裡非空的元素相加,再去模n,看看會不會出現新的餘數。include include using namespace std vectorfind number int n bigint 1 push back 0...