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

急急急,语法没错,逻辑错在哪了呢,输出答案是10位

public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count = 0;
        for(;count<=9;count++){
            if(num/(10^count)<1){
            break; 
         }
        }System.out.println("它是个"+count+"位的数!");

}

}

提问者:慕粉3825102 2016-08-21 19:30

个回答

  • 慕的地2840456
    2016-08-22 00:56:15
    已采纳

    if语句中的表达表达式错误!!!10的n次方不能写成10^n,“^”是位运算符!!!

    正解是Math.pow(10, count)即是if中的表达式是(num / Math.pow(10, count) < 1)

  • 慕无忌5996393
    2016-09-07 15:55:41

    讲道理来说,开始的定义变量count的初始值应该为1才对吧,哪有什么0位数。。。。。。 public class HelloWorld{ public static void main(String[] args){    int num = 999;    int count = 1;   for(;(num/10)!= 0;count++){     num=num/10; } System.out.println("它是个"+count+"位的数!"); } }

  • 搞不懂e
    2016-08-21 20:25:10

    for(;count<=9;count++)    count等于9的话,count也自增所以是10位,if后面小括号里的扛不动

  • 程序员_818
    2016-08-21 20:10:19

    这代码写的,基本逻辑关系就错了。从逻辑关系上看就是强制count强制循环10次,你count不等于10么