Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 30, 2013 22:28:11

Denis_Yakovenko
Зарегистрирован: 2013-09-28
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите придумать идею для решения задачи

Даны натуральные числа 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 и деление нацело без остатка (//), но что-то ничего в голову не лезет…

Офлайн

#2 Сен. 30, 2013 22:35:24

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Помогите придумать идею для решения задачи

Denis_Yakovenko
n%10 = последняя цифра числа, а вот как найти предпоследнюю и так далее цифры…. Возможно можно как-то использовать функцию trunc и деление нацело без остатка (//)
узнал последнее
узнал остаток
узнал последнее у остатка


 n = 536262783473275
sum([int(x) for x in str(n)][4:])

Отредактировано Singularity (Сен. 30, 2013 22:39:26)

Офлайн

#3 Сен. 30, 2013 22:42:13

Denis_Yakovenko
Зарегистрирован: 2013-09-28
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите придумать идею для решения задачи

Singularity
я не понял совсем….
вот, если взять к примеру число n = 1342:
узнал последнее: n%10 = 2
узнал остаток (??): n/10 - 134.2 (остаток 2)
узнал последнее у остатка: ???

и ведь это всё это дело нужно еще и в цикл запихнуть…

Офлайн

#4 Сен. 30, 2013 22:54:12

Denis_Yakovenko
Зарегистрирован: 2013-09-28
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите придумать идею для решения задачи

Singularity
Объясните, пожалуйста

Отредактировано Denis_Yakovenko (Сен. 30, 2013 22:54:26)

Офлайн

#5 Сен. 30, 2013 23:07:39

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Помогите придумать идею для решения задачи

Denis_Yakovenko
ок , не остаток.
Можно отнимать

m = 1999
(m - (m % 10 )) /10
199

Офлайн

#6 Сен. 30, 2013 23:08:02

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Помогите придумать идею для решения задачи

Denis_Yakovenko

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

Потом считай сумму всех элементов в списке через sum(), это и будет сумма m последних цифр числа n.



Отредактировано Budulianin (Сен. 30, 2013 23:18:01)

Офлайн

#7 Окт. 1, 2013 14:18:58

Euler
Зарегистрирован: 2013-07-30
Сообщения: 43
Репутация: +  1  -
Профиль   Отправить e-mail  

Помогите придумать идею для решения задачи

Denis_Yakovenko
Смог придумать только, как найти сумму всех цифр:
Ну python-like решение уже показали, но что мешает свести одну задачу к другой? Возьми остаток от деления на 10^m и ищи сумму всех его чисел. А классическим решением будет добавление счётчика в цикл.

Офлайн

#8 Окт. 1, 2013 22:19:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Помогите придумать идею для решения задачи

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
>>>



Офлайн

#9 Окт. 2, 2013 09:37:01

alrusdi
Зарегистрирован: 2013-09-30
Сообщения: 20
Репутация: +  8  -
Профиль   Отправить e-mail  

Помогите придумать идею для решения задачи

n = 1234567
m = 4
sum([int(i) for i in str(n)[-m:]])

Офлайн

#10 Окт. 2, 2013 09:43:26

jcrow
От:
Зарегистрирован: 2011-10-31
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите придумать идею для решения задачи

n=12345
m=2
sum([int(x) for x in str(n % 10 ** m)])




Подпись - это небольшая приписка (хи-хи).

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version