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

急急急,语法没错,逻辑错在哪了呢,输出答案是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+"位的数!");

}

}

正在回答

4 回答

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

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

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

慕粉3825102 提问者

非常感谢!不胜感激
2016-08-22 回复 有任何疑惑可以回复我~

讲道理来说,开始的定义变量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+"位的数!"); } }

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

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

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

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

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

举报

0/150
提交
取消

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

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