题目的主要信息:
- 输入一个十进制整数,计算它的位数
- 如果输入的整数不大于0则输出这个数
具体做法:
我们先用if语句判断输入这个数是否大于0,如果否则输出这个数,如果是我们才对它计算位数。
计算十进制数的位数,我们用连除法,每次除以10,除掉这个数的最后一位,然后统计一次直到为0.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
scan.close();
if(num <= 0) //先判断是否小于等于0
System.out.println(num);
else{
int count = 0; //记录位数
while(num > 0){ //每次除10除掉最后一位,统计1次,直到为0
count++;
num /= 10;
}
System.out.println(count);
}
}
}
复杂度分析:
- 时间复杂度:,使用连除法循环次数为这个数的log级
- 空间复杂度:,无额外空间