当前位置: 首页 > 知识库问答 >
问题:

我想检查一个数字是二进制还是十进制,但它不起作用

卓致远
2023-03-14

我想检查一个数字是二进制还是十进制,但从1到n都不行。例如,从1到10我们有两个十进制数字,其中包含0,1。我如何更改它?

import java.util.Scanner;
public class Main
{
    public static void main(String args[]) {
        int r = 0, c = 0, num, b;
        int count=0;
        Scanner sl = new Scanner(System.in);
        System.out.println("Enter a number");
        num = sl.nextInt();

        for (int i = 1; i <= num; i++) {

                if ((i % 10 == 0) || (i % 10 == 1))
                    c++;
                r++;
                i = i / 10;
            }
            if (c == r)
                count++;
            else{

            }
        System.out.println(count);
        }

    }

共有1个答案

郁承运
2023-03-14

在这里,将使用2个循环,一个用于范围,一个用于检查它是否是二进制的。
我们将使用flag和break来代替c和r,以跳过不必要的迭代

int count=0;
boolean flag = true;
for(int i=1;i<=num;i++)
{
    for(int j=i;j>0;j=j/10)
    {
        // if remainder is not 0 and 1, then it means it's not binary
        // so we set flag as false
        // and using break to break out of the current(inner) loop, it's no longer needed to check the of the digits.
        if (j%10 > 1)
        {
            flag = false;
            break;
        }
    }
    // if flag is true, that means it's binary and we increment count.
    // if flag is flase, that means it's not binary 
    if(flag)
        count++;
    // here we reset flag back to true
    flag = true
}
System.out.println(count);

你也可以按照@Jchenaud的建议做。将其转换为字符串,并检查它是否只包含01

 类似资料:
  • 我可以运行这个程序,但由于某些原因,它会显示/放置随机字符,而不是二进制的初始值,而且我似乎无法将程序从十进制运行回二进制。我该如何改进这些代码。要明确说明它不会将二进制转换为十进制,我将如何将其转换回十进制转换为二进制,如果有一些代码可以帮助我,将不胜感激。

  • 问题内容: 如何检查数字是否为小数? 使用Objective-C: 问题答案: 如果将数字四舍五入(可以使用下限功能来完成),然后从原始数字中减去该数字,则会得到两者之间的差。 编辑- 我的原始答案建议计算数字与其下限等值之间的差,以查看小数点后是否有任何单位。但是,如后面所述,可能存在舍入错误,这会导致内存中值的表示与实际含义略有不同。 例如,3.0可以表示为3.00000000000001,因

  • Python3 实例 以下代码用于实现十进制转二进制、八进制、十六进制: # -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com # 获取用户输入十进制数 dec = int(input("输入数字:")) print("十进制数为:", dec) print("转换为二进制为:", bin(dec

  • 主要内容:二进制数、八进制数和十六进制数的表示,二进制数、八进制数和十六进制数的输出C语言中的整数除了可以使用十进制,还可以使用二进制、八进制和十六进制。 二进制数、八进制数和十六进制数的表示 一个数字默认就是十进制的,表示一个十进制数字不需要任何特殊的格式。但是,表示一个二进制、八进制或者十六进制数字就不一样了,为了和十进制数字区分开来,必须采用某种特殊的写法,具体来说,就是在数字前面加上特定的字符,也就是加前缀。 1) 二进制 二进制由 0 和 1 两个数字组成,使用时必须以

  • 我是JavaScript regex的新手,我有以下问题。 105或105.1或105.12或105.1231243123123131231 好的,我如何修改前面的regex以只接受表示最多2个小数位数的数字的字符串? 例如: 105.123不得接受

  • 在这个例子中,我找到了三位数的八进制数,我使用了冗长的if条件,谁能减少if语句和赋值。注意不要使用预先定义的过程或内置的包..