首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Python 作業:不調用數學函數計算正整數位數

     編輯:程式設計綜合問答

輸入正整數 n,輸出其十進制位數。限制:不能使用 len(str(n))、math.log10 等庫函數,僅允許四則運算與循環。

核心思路

反覆除以 10 計數,直到商為 0。

def count_digits(n):
    count = 0
    while n > 0:
        n //= 10
        count += 1
    return count

# 測試
print(count_digits(123456))  # 6
print(count_digits(0))       # 0 (題目說正整數,0 特殊處理)

進階:避免修改原值

def count_digits_v2(n):
    if n == 0: return 1
    count = 0
    temp = n
    while temp:
        temp //= 10
        count += 1
    return count

複雜度分析

  • 時間:O(log₁₀ n) —— 位數迭代次數。
  • 空間:O(1) —— 僅常數額外變量。

這是經典的「位數計算」面試題,考察對整數除法與循環不變量的理解。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved