Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 16.01.2022
Сообщений: 10

Сложение в столбик, используя списки

23.09.2023, 22:07. Показов 3812. Ответов 13

Студворк — интернет-сервис помощи студентам
Условно на вход даются два списка(они могут иметь разную длину). Требуется сложить их содержимое по разрядам(как в столбик). Я постараюсь объяснить это на примере:

итак, два списка
Python
1
2
a = [5, 6, 7]
b = [3, 4]
результатом работы данной программы будет
Python
1
res = [6, 0, 1]

Was there something I could say or something I should not have done?
Was I lost all along?
Was I looking for an answer when there never really was one?
Was I looking for an answer when there never really was one?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.09.2023, 22:07
Ответы с готовыми решениями:

Сложение длинных целых чисел используя двусвязные списки
как реализовать программу сложения длинных целых чисел используя двусвязные списки? Запрещено выкладывать текст в виде фотографий.

Сложение длинных положительных целых чисел, используя циклические списки
как реализовать программу сложения длинных целых чисел используя циклические списки?

Реализовать сложение двух чисел методом "длинной арифметики", используя линейные списки
В начале я два числа загоняю в два списка по типу "стек". Затем мне нужно выполнить сложение и записать результат в список, длина которого...

13
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
23.09.2023, 23:31
Лучший ответ Сообщение было отмечено VlaDIKslave как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
a = list(map(int, input('a->').split()))
b = list(map(int, input('b->').split()))
if len(b) < len(a):
    a, b = b, a
a.reverse()
b.reverse()
a += [0]*(len(b)-len(a))
n = 0
res = []
for i in range(len(a)):
    n, rem = divmod(a[i]+b[i]+n, 10)
    res.append(rem)
if n:
    res.append(n)
res.reverse()
print(res)
1
Заблокирован
24.09.2023, 06:49
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
a=[9, 6, 7]
b=[3, 4]
pa=len(a)
pb=len(b)
c=[]
d=0
while pa>0 or pb>0:
    if pa:
        pa-=1
        d+=a[pa]
    if pb:
        pb-=1
        d+=b[pb]
    c=[d%10]+c
    d//=10
if d: c=[1]+c
print(c)
1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
24.09.2023, 08:12
Ну или чтобы с зипами потренироваться:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from itertools import zip_longest
 
def sum_list(a, b):
    z = list(zip_longest(a, b, fillvalue=0))
    while z[-1] == (0,0) and len(z) > 1:
        z.pop()
    des, ed = list(zip(*[divmod(sum(x),10) for x in z]))
    if max(des) == 0:
        return list(ed)
    return sum_list([0] + list(des), ed)
 
a = reversed(list(map(int, input('a->').split())))
b = reversed(list(map(int, input('b->').split())))
res = list(reversed(sum_list(a, b)))
print(res)
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
24.09.2023, 08:43
подскажите, а как с
a = [5, 6, 7]
получить
a = 567
?
1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
24.09.2023, 08:49
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
подскажите, а как с
a = [5, 6, 7]
получить
a = 567
?
Python
1
2
3
arr = [5,6,7]
n = int(''.join(map(str, arr)))
print(n)
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
24.09.2023, 08:55
idealist,
а почему тогда так много текста в предложенных решения, почему не так?
Python
1
2
3
4
5
a = [5, 6, 7]
b = [3, 4]
a = int(''.join(map(str, a)))
b = int(''.join(map(str, b)))
c = a + b  # тут же будет 601? и тогда как 601 преобразовать в res = [6, 0, 1] ?
1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
24.09.2023, 09:07
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
тут же будет 601? и тогда как 601 преобразовать в res = [6, 0, 1] ?
Python
1
2
3
n = 601
arr = list(map(int, str(n)))
print(arr)
Добавлено через 2 минуты
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
а почему тогда так много текста в предложенных решения, почему не так?
Ну, через числа каждый дурак сможет, а вы через списки попробуйте!)))
А если серьезно, то я так понял, что это задача на тренировку по работе именно со списками, иначе решение тривиально.
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
24.09.2023, 09:09
idealist, понятно, я бы решил так:
Python
1
2
3
4
5
6
7
a = [5, 6, 7]
b = [3, 4]
a = int(''.join(map(str, a))) # 567
b = int(''.join(map(str, b))) # 34
c = a + b # 601
res = list(map(int, str(c)))
print(res) # [6, 0, 1]
1
Вирусоборец
 Аватар для thyrex
14445 / 7486 / 1580
Регистрация: 06.09.2009
Сообщений: 27,129
24.09.2023, 09:13
Ципихович Эндрю, к чему тогда вообще преобразование в число, если потом все равно возвращаться к списку?
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
24.09.2023, 09:15
Цитата Сообщение от thyrex Посмотреть сообщение
к чему тогда вообще преобразование в число, если потом все равно возвращаться к списку?
предложите своё решение не более чем в 7-м строк
1
Вирусоборец
 Аватар для thyrex
14445 / 7486 / 1580
Регистрация: 06.09.2009
Сообщений: 27,129
24.09.2023, 09:25
Рассмешили. Вам важнее поставить рекорд по краткости кода, не взирая на условие задания? Сомнительный подход.
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
24.09.2023, 09:31
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
я бы решил так
Тогда уж так:
Python
1
2
3
4
5
6
int_to_list = lambda n: list(map(int, str(n)))
list_to_int = lambda arr: int(''.join(map(str, arr)))
 
a = [5, 6, 7]
b = [3, 4]
print(int_to_list(list_to_int(a) + list_to_int(b)))
1
0 / 0 / 0
Регистрация: 16.01.2022
Сообщений: 10
24.09.2023, 10:33  [ТС]
спасибо всем за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.09.2023, 10:33
Помогаю со студенческими работами здесь

Сложение в столбик
Даны два целых числа — двузначное число aa и однозначное число bb, причем первое задается двумя цифрами: a1a1 — числом единиц, и a2a2 —...

Сложение в столбик
Готовый код но надо что б числа складывались столбиком… найти и вывести в файл запись нахождения суммы двух очень длинных чисел в виде...

Сложение в столбик в массиве
Даны две целочисленные последовательности A и B, каждый элемент которых является цифрой, то есть 0&lt;= ai&lt;=9 и 0&lt;= bi &lt;=9....

Сложение\вычитание в столбик
Нужно написать программу, которая выполнит сложение и вычитание (выбор выполняемого действия осуществляет пользователь) над двумя числами,...

Сложение чисел строкового типа в столбик
Есть задание: даны два вещественных числа в виде срок. Они могут быть разной длины Необходимо сложить их в столбик. Переводить их при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru