Найти - Пользователи
Полная версия: Помогите придумать идею для решения задачи
Начало » Python для новичков » Помогите придумать идею для решения задачи
1 2
Denis_Yakovenko
Даны натуральные числа m и n. Найти сумму m последних цифр числа n.

Смог придумать только, как найти сумму всех цифр:
n = input('Enter number: ')
n = int(n)
s = 0
while n > 0:
    s = s + n % 10
    n = n // 10
print(s)
______
или же такой вариант еще есть:
s = 0
for n in input('Enter number: '):
    s += int(n)
print(s)
______
НО, я никак не могу придумать, как найти сумму ОПРЕДЕЛЁННОГО количества последних цифр. да и идей практически нет. вот, например: n%10 = последняя цифра числа, а вот как найти предпоследнюю и так далее цифры…. Возможно можно как-то использовать функцию trunc и деление нацело без остатка (//), но что-то ничего в голову не лезет…
Singularity
Denis_Yakovenko
n%10 = последняя цифра числа, а вот как найти предпоследнюю и так далее цифры…. Возможно можно как-то использовать функцию trunc и деление нацело без остатка (//)
узнал последнее
узнал остаток
узнал последнее у остатка


 n = 536262783473275
sum([int(x) for x in str(n)][4:])
Denis_Yakovenko
Singularity
я не понял совсем….
вот, если взять к примеру число n = 1342:
узнал последнее: n%10 = 2
узнал остаток (??): n/10 - 134.2 (остаток 2)
узнал последнее у остатка: ???

и ведь это всё это дело нужно еще и в цикл запихнуть…
Denis_Yakovenko
Singularity
Объясните, пожалуйста
Singularity
Denis_Yakovenko
ок , не остаток.
Можно отнимать
m = 1999
(m - (m % 10 )) /10
199
Budulianin
Denis_Yakovenko

Представляй число (n = 536262783473275), как последовательность текстовых символов (str(n)), размещай каждый символ , как элемент списка int(х) for x in str(n) , так чтобы перед размещением в списке он стал числом(int(x)) и срезай от этого списка столько, сколько нужно, например от 5 элемента и до конца (4:)

Потом считай сумму всех элементов в списке через sum(), это и будет сумма m последних цифр числа n.
Euler
Denis_Yakovenko
Смог придумать только, как найти сумму всех цифр:
Ну python-like решение уже показали, но что мешает свести одну задачу к другой? Возьми остаток от деления на 10^m и ищи сумму всех его чисел. А классическим решением будет добавление счётчика в цикл.
py.user.next
Denis_Yakovenko
Даны натуральные числа m и n. Найти сумму m последних цифр числа n.
>>> def f(n, m):
...     s = 0
...     while m > 0:
...         s += n % 10
...         n //= 10
...         m -= 1
...     return s
... 
>>> f(12345, 3)
12
>>> f(12345, 2)
9
>>>
alrusdi
n = 1234567
m = 4
sum([int(i) for i in str(n)[-m:]])
jcrow
n=12345
m=2
sum([int(x) for x in str(n % 10 ** m)])
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB