2011-10-25 114 views
-2

可能重複格式化:
Find multiple of a number that can be written with 1s and 0s多個由0/1

鑑於數n(2 < = N < = 1000),找到最低非零倍數其中是寫入在基數10中只有數字0和1。例如:2→10→3→111→4→100→7→1001→11→11→9→111 111 111.

我想,按照餘數除以數字組成n格式化爲0/1.感謝您的幫助!

{10/3= 3 remaining 1 -> and the finaly is 111 !!! 
10/4= 4 ramining 2 -> and the finaly is 100 !!!  
10/6= 1 ramainin 4 -> and the finaly is 1110 !!!  
I don't understand is the logic} 
+1

我似乎無法找出你在問什麼。 (第一部分看起來像一個家庭作業問題)。 –

+0

這看起來像功課 – Efthymis

+1

的問題是種不清楚。 – dagnelies

回答

0

的問題基本上是說:找到ñ第一非零倍數僅由1和0。而且我們不是在說二進制(基數2)或剩餘的或任何想象的東西。這裏有一些例子,其格式爲:

n => The first multiple of n with only 1s and 0s is x (n * y = x) 
-------------------------------------------------------------------------- 
2 => (2 x 5 = 10) 
3 => (3 x 37 = 111) 
4 => (4 x 25 = 100) 
7 => (7 x 143 = 1001) 
11 => (11 x 1 = 11) 
9 => (9 x 12,345,679 = 111,111,111) 

你需要找出一種算法,使其工作!你可以用蠻力:

for each n between 2 and 1000 
    y = 1 
    x = 0 
    do 
     x = n * y++ 
    while (x is not 0 and string(x) is not all 0s and 1s) 
    print n => x 
next n 

我實現了這個在C#中,以測試它,它給了我ñ以下輸出2和10:

2 => 10 
3 => 111 
4 => 100 
5 => 10 
6 => 1110 
7 => 1001 
8 => 1000 
9 => 111111111 
10 => 10 

有可能更快實現,但是這應該讓你知道從哪裏開始。

+0

以及如何計算ÿ什麼ň – user1011460

+0

非常感謝你! – user1011460

0

如果你尋求幫助解釋。(作業)的問題,這就是我認爲它的意思是:「對於一個給定的數字,找出它的最小倍數僅包含數字1或0」

所以中,例如,如果數量爲2:

Multiples of 2 = {2, 4, 6, 8, 10, 12, 14, .... } 
           | 
           | 
         this is your answer!     

非暴力破解的方式來做到這將是迭代僅包含0和1 throught號碼然後找出如果數量是多少的在多題。這種方法將顯着大於通過n倍數迭代以及確定是否它僅包含01更有效。

獲取僅包含01的數字列表的簡單方法是迭代整數和每個值,將其二進制表示形式解釋爲十進制數。

下面是一個在線演示,讓你開始:http://jsfiddle.net/6j5De/4/

由於這很可能是功課,我會離開它你來翻譯,爲你的主題語言。

+0

禁止直接檢查n的倍數,如果僅由0和1組成0 – user1011460

+0

@ user1011460用非蠻力方法和演示更新答案 –