问答详情
源自:4-15 编程练习

请问这样为啥不行?

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+"位的数!");

}

}


提问者:weixin_慕瓜1187328 2022-02-01 21:36

个回答

  • 慕移动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开始