题目
读入正整数,统计它的位数
思路
if (n==0) return 1 位;否则 while (n) { n/=10; cnt++; }。负数可先取绝对值再数。
解题分析
反复 n/=10 直到为 0 计数;n==0 单独返回 1 位。负数可先取绝对值再数,按题目是否允许负数处理。
完整程序
import java.io.*;
public class Main {
public static void main(String[] args) {
int n = 12345;
if (n == 0) {
System.out.println(1);
return;
}
int x = Math.abs(n), c = 0;
while (x != 0) {
c++;
x /= 10;
}
System.out.println(c);
}
}
运行示例
输出:
5