Программа для нахождения сумм чисел из заданного числа

IvanElov

Новичок
Пользователь
Окт 25, 2023
9
0
1
Программа должна находить все суммы чисел заданного пользователем числа (допустим если пользователь ввёл 2, то это 0110, если 5, то это 2021 и т.д.
Мой код выполняется но ничего не выдает (даже ошибку не выдает)
Python:
k = str(input())
n = 0

for a in range(10):
    for b in range(10):
        for c in range(10):
            for d in range(10):
                if a*b*c*d == k:
                    n += 1
print(a, b, c, d)
print(f'n = {n}')
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 585
459
83
всё равно консоль молчит
ищите проблему в своей иде, у меня работает
Безымянный.jpg
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 585
459
83
Мой код выполняется но ничего не выдает (даже ошибку не выдает)
потому что вот это
Python:
for a in range(10):
    for b in range(10):
        for c in range(10):
            for d in range(10):
выполняется долго

и чет не понятно как из 2 получить 0110, и из 5 - 2021 ?
задание полностью покажите
 

IvanElov

Новичок
Пользователь
Окт 25, 2023
9
0
1
чтобы нам получить число 5 нам нужно сложить 2+0+2+1 (обязательно 4 цифры в сложении) без плюсов получается 2021
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 585
459
83
чтобы нам получить число 5 нам нужно сложить 2+0+2+1 (обязательно 4 цифры в сложении) без плюсов получается 2021
а почему не 3 2 0 0 ? или 1 1 3 0 ?
 

IvanElov

Новичок
Пользователь
Окт 25, 2023
9
0
1
нужно чтобы все возможные варианты выводились
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 585
459
83
Мой код выполняется но ничего не выдает
а вы вводили в консоль что нибудь?
я чет просмотрел думал у вас циклы range 100, а там 10, работает быстро, а ничего не выдает, потому что ждет ввода в консоль...
 

IvanElov

Новичок
Пользователь
Окт 25, 2023
9
0
1
конечно, я хоть и новичок, но не настолько :)
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 585
459
83
ваш код не менял сильно
Python:
k = input()
n = 0

for a in range(10):
    for b in range(10):
        for c in range(10):
            for d in range(10):
                if a+b+c+d == int(k):
                    n += 1
                    print(a, b, c, d)
print(f'n = {n}')
 

IvanElov

Новичок
Пользователь
Окт 25, 2023
9
0
1
всё равно консоль молчит
 

IvanElov

Новичок
Пользователь
Окт 25, 2023
9
0
1
image.png
 

IvanElov

Новичок
Пользователь
Окт 25, 2023
9
0
1
спасибо, решил дело было в ide
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 585
459
83
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
374
108
43
А ещё желательно не городить 4 фора подряд, есть более красивое решение, встроенное в питон.

Python:
from itertools import product
k, n = int(input()), 0

for i in product(range(10), repeat=4):
    if sum(i) == k:
        n += 1
        print(*i)
print(f'{n = }')
 
Последнее редактирование:
  • Мне нравится
Реакции: regnor

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 585
459
83
А ещё желательно не городить 4 фора подряд, есть более красивое решение, встроенное в питон.

Python:
from itertools import product
k, n = int(input()), 0

for i in product(range(10), repeat=4):
    if sum(i) == k:
        n += 1
        print(*i)
print(f'{n = }')
плюсанул, но может быть нельзя использовать эти инструменты
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
374
108
43
но может быть нельзя использовать эти инструменты
не спорю, даже если и так, то пусть IvanElov да и остальные кто будет смотреть тему просто знают, что есть и другие подходы:)
 

Форум IT Специалистов