为了账号安全,请及时绑定邮箱和手机立即绑定

求指导,哪里有问题?

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 回答

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;
        }
    }
}


0 回复 有任何疑惑可以回复我~
#1

多啦先生 提问者

非常感谢!
2015-08-09 回复 有任何疑惑可以回复我~

超出int取值范围了

0 回复 有任何疑惑可以回复我~

三个地方

1、变量i要从1开始

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

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

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165457    人
  • 解答问题       17585    个

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

进入课程

求指导,哪里有问题?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信