题意整理
- 输入一个整数。
- 计算对应的位数。
方法一(循环)
1.解题思路
- 定义一个位数变量,记录对应位数变化。
- 使用一个while循环,只要num大于0,则位数加一,同时num除10,表示消耗掉最低位。
动图展示:
2.代码实现
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();
//如果小于等于0,直接输出
if(num<=0){
System.out.println(num);
}
//记录整数位数
int cnt=0;
while(num>0){
//每消耗一个位置,位数加一
cnt++;
num/=10;
}
System.out.println(cnt);
}
}
3.复杂度分析
- 时间复杂度:假设输入的数是n,总共需要循环,所以时间复杂度为。
- 空间复杂度:需要额外常数级别的空间,所以空间复杂度为。