锤子版黑锅牌
2019-02-02 18:40
public class HelloWorld{
public static void main(String[] args){
// 方式1:通过百度搜索到幂运算法加入的
int num = 999;
int count = 0;
for (int i = 0; i <= 10; i++) {
double result = Math.pow(10,i);
if(num - result >= 0) {
count = count +1;
}
}
//方式2:此法有个缺点:没在for之前把count+1,最终位数会少1
/** int num = 999;
int count = 0;
int dig = 1;
if(num > -1000000000 && num < 1000000000){
count = 1;
}
else {
System.out.println("输入的值必须在10位以内");
}
for (int i = 1; i < 10; i++) {
dig = (dig * 10);
if(num - dig >= 0) {
count = count +1;
// System.out.println(dig);
}
}
**/
System.out.println("它是个" + count +"位的数!");
}
}
是的,之前我看错了。方法二因为dig第一次循环值为10,所以第一次循环若>=,count结果应为2.所以把count=0改为count=num==0 ? 0 : 1;然后若超10位要求重输,剩下代码不变。这样应该行吧
方法二的结果count就是比位数少1,所以在输出之前进行count++,再输出count就可以了呀
Java入门第一季(IDEA工具)升级版
1165172 学习 · 17581 问题
相似问题