2011-10-25 118 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用非蛮力方法和演示更新答案 –