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+"位的数!");
}
}
就算你吧逻辑改好了 但是int 类型范围是20亿到-20亿 你这种算法i和十位数比较的时候 最后一遍*10自身会溢出 也就是num不是原来的num了 不能这样和十位数直接比
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+"位的数");
搜索
复制
if再循环外了;i从10开始 ,num/i>1成立的话就说明是从两位数开始的 count+2或者i从1开始