求指导,哪里有问题?

来源:4-15 编程练习

多啦先生

2015-08-07 16:16

public class HelloWorld{

public static void main(String[] args){

int num = 999;

int count = 0;

if(num>=0&&num<=9999999999){

    for(int i=10;i<=10000000000;i=i*10,count=count+1){

        if(num/i=0){

            System.out.println("它是一个"+count+"位的数");

            break;

        }

    }

}


写回答 关注

3回答

  • 管理員
    2015-08-08 01:01:13
    已采纳

    int count = 1;初始值需要是1

    另外值得一提的是

    for(int i=10;i<=10000000000;i=i*10,count=count+1) 这个起始范围约束做的非常到位. 10亿刚刚好。代码非常严谨,而且做了一些效率优化。

    程序员写一个位数判断也就是10秒钟的事,但是这些细节我肯定会忽略。

    public class HelloWorld{
    public static void main(String[] args){
    int num = 999;
    int count = 0;
    if(num>=0&&num<=9999999999){
        for(int i=10;i<=10000000000;i*=10){
            count++;
            if(num/i==0){
                System.out.println("它是一个"+count+"位的数");
                break;
            }
        }
    }


    多啦先生

    非常感谢!

    2015-08-09 14:05:40

    共 1 条回复 >

  • Aaron_jun
    2015-08-07 17:00:52

    超出int取值范围了

  • 偶然0510
    2015-08-07 16:53:39

    三个地方

    1、变量i要从1开始

    2、if条件num/i=0应该是num/i==0

    3、int行最大为65535,使用9999999999或10000000000进行比较运算,可能会报错。

    有啥不对的地方,还请指导。

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题