将数字转换为二进制数并在java中以二进制数计数连续1

时间:2017-12-28 06:32:18

标签: java binary

我在下面写了代码,用于显示连续1的二进制数的计数,例如,如果输入是13 1101,那么count应该是2.

但是1911年的测试用例失败了

import java.util.Scanner;

/**
 * 
 */

/**
 * @author jyotiv
 *
 */
public class BinaryConversion {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    int n=0,count=1;
    String binaryNo="";
    int sum=0;
    Scanner scanner=new Scanner(System.in);
    n=scanner.nextInt();
    binaryNo=Integer.toBinaryString(n);
    System.out.println(binaryNo);
char binaryArray[]=binaryNo.toCharArray();
    for(int i=0;i<binaryArray.length-1;i++)
    {       
        //System.out.print(binaryArray[i]);
        if(binaryArray[i]==binaryArray[i+1])
        {
        count++;    
        }


    }
    System.out.println(count);
}

}

1 个答案:

答案 0 :(得分:0)

import java.io.*;
import java.util.*;


/**
 * @author jyotiv
 *
 */
public class BinaryConversion{

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int n=0,countOne=0,maxCount = 0;
        String binaryNo="";
        int sum=0;
        Scanner scanner=new Scanner(System.in);
        n=scanner.nextInt();
        binaryNo=Integer.toBinaryString(n);
        System.out.println(binaryNo);
        char binaryArray[]=binaryNo.toCharArray();
        for(int i=0;i<binaryArray.length;i++)
        {       
            //System.out.print(binaryArray[i]);

            if(binaryArray[i]=='1')
            {
                countOne++; 
            //}
            }
            if(countOne>maxCount)
            {
                maxCount=countOne;
            }
            if(binaryArray[i]=='0')
            {
                countOne=0;
            }
        }
        System.out.println(maxCount);
    }

}

适用于上述修改