请问这样为啥不行?

来源:4-15 编程练习

weixin_慕瓜1187328

2022-02-01 21:36

public class HelloWorld{

public static void main(String[] args){

int num = 999;

int count = 0;

for(i=10;num/i>=1;){

    count=count+1;

    i=i*10;

}if(num/i<1){

    break;

}

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

}

}


写回答 关注

3回答

  • 慕移动8356018
    2022-07-04 23:00:28

    就算你吧逻辑改好了 但是int 类型范围是20亿到-20亿 你这种算法i和十位数比较的时候 最后一遍*10自身会溢出 也就是num不是原来的num了 不能这样和十位数直接比

  • weixin_慕仰1563560
    2022-03-05 22:15:10
    int num = 1;
    int count = 0;
    for(int i=10;i<=1000000000;i=i*10){
        count=count+1;
        if(((double)num/i)-1<0){
            break;
        }
    }System.out.println("它是个"+count+"位的数");

    搜索

    复制

  • 张天天1
    2022-02-05 21:30:06

    if再循环外了;i从10开始 ,num/i>1成立的话就说明是从两位数开始的 count+2或者i从1开始

    weixin...

    他的要count=1开始的。

    2022-03-05 22:21:14

    共 1 条回复 >

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

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

1165175 学习 · 17581 问题

查看课程

相似问题