题目

读入正整数,统计它的位数

思路

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