2016-01-23 112 views
-4

我有一个问题:有人可以给我一个搜索二进制表的例子来找到从1到0的变化吗?例如,一行有搜索二进制表

0 0 0 1 1 0 0 0 0 1 1 1 0 0 

它应该给我2个变化。我只想搜索一行。

+2

好,假设上面的线是一个字符串,你循环左到右,开始'I = 1'中去,而'我<行。在每次循环迭代时检查if(line [i - 1] == 1 && line [i] == 0)是否改变++; – nem035

+4

如果您无法弄清楚,请尝试将其发布到此处。这样你可以更好地学习。 –

+0

哦,谢谢,它真的很有帮助,尼姆:) – Natalia

回答

0
for(int i=1; i< binarytableline.length; i++){ 
if (binarytableline[i - 1] == 1 && line[i] == 0) changes++;  
} 

请记住,标从零开始:

enter image description here (Java文档)

从本质上讲,什么代码发生以上是我们通过线循环。现在,我是索引。让我们从循环的开始开始。

i=1 

所以,binarytableline [1-1] =二进制表行的第一个索引,或者是第一个数字。现在,我们看到它是否等于1,而第二个索引i等于0。要检查,我们做以下几点:

binarytableline[i - 1] == 1 && line[i] == 0 

这将意味着在二进制数字到下一个变化从一个数字,在我们的例子是第0指数第一。现在,我们通过做changes++来迭代变量changes。再次,这是一个for循环,这意味着我们将遍历所有这样的元素。其变化的次数将被记录在int changes中。

让我知道这是否帮助,

Ruchir

+0

非常感谢,这是巨大的帮助,你让我明白这一点:) – Natalia

+0

@Natalia没问题纳塔利娅!我很乐意提供帮助。你的二进制表是一个int数组,对吗? –

+0

是的,它是Integer类型@Ruchir Baronia :) – Natalia