题目
从标准输入读入一个正整数 n,统计并输出该整数的十进制位数。
输入格式:一行输入一个正整数 n。
输出格式:输出一个整数表示其位数,末尾换行。
数据范围与约定:1 ≤ n ≤ 1018。
思路与算法
1. 数学循环整除法
通过 while n: n //= 10; count += 1 循环整除 10 逐位剥离,适合理解数位算法。
2. 字符串长度法
Pythonic 极简方案为 len(input().strip()),时间复杂度同样为线性 O(位长)。
完整程序
n = int(input())
# 斐波那契数列迭代:使用 a, b 滚动更新,避免递归重复计算
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
print(a)运行示例
输入:
12345输出:
5