Зачем отвечать на счет ди git в числах с python3 с правильными логами c? - PullRequest
2 голосов
/ 20 апреля 2020

Я написал этот код в редакторе:

#!/usr/bin/env python3


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

print(digits(25))   # Should print 2
print(digits(144))  # Should print 3
print(digits(1000)) # Should print 4
print(digits(0))    # Should print 1

Но я получаю:

325
326
327
1

Это неправильная логика c или, я что-то упускаю в этом

1 Ответ

3 голосов
/ 20 апреля 2020

/= выполняет деление с плавающей запятой. Используйте //= для целочисленного деления.

def digits(n):
    count = 0
    if n == 0:
        count = 1
    while n > 0:
        n //= 10
        count += 1
    return count
...