将数字转换为二进制并在java中以二进制数计数连续1的[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将数字转换为二进制并在java中以二进制数计数连续1的[关闭]相关的知识,希望对你有一定的参考价值。

我在下面写了代码,用于显示连续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);
}

}
答案
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);
    }

}

它适用于上述修改

以上是关于将数字转换为二进制并在java中以二进制数计数连续1的[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将具有科学计数法的字符串列表转换为十进制数

JAVA如何将二进制数转换成文件?

将科学计数法中的十进制数转换为 IEEE 754

在页面js 中,怎么将中文字符串转换成2个字节长度16进制数;并在js 环境下解码16进

如何将 int 转换为十六进制数并将其打印为 c 中的 3 位数字? [复制]

68如何变为二进制数字 过程