Задачи за тренинг
Задача 3а. [1.3.2, стр.81, sumzero.c]
Нека са дадени числата a1,
a2, ..., an. Да се поставят
операции "+" и "-" между числата ai
и ai+1
за i = 1, 2, ..., n-1 така, че резултатът след
пресмятане на получения израз да бъде равен на зададено число b
(1 < n < 20).
Вход:
На входа се задават редици от n + 1 числа a1, a2, ..., an, b - всяка
редица на отделен ред. Всички числа са цели в интервала [1, 1000].
Изход:
За всяка редица от входа се отпечатва един израз със стойност b.
Ако не може да се получи тази стойност, да се остави празен
ред.
Примерен вход:
1 1 0
1 2 3 4 5 6 7 8 0
3 4 2
30 20 40 10
Решение за примерния вход:
1-1=0
1+2+3+4-5-6-7+8=0
30+20-40=10
Задача 3b. [1.3.4, стр. 87, devnum3.c]
Да се намерят всички разбивания на дадено естествено число като сума
на други зададени числа.
Вход:
За всеки пример се задават най-напред числата, които се
използват за разбиването, след това числата за разбиване на нов ред.
Всички числа са по-малки от 1000. Входът съдържа много примери.
Изход:
За всеки пример се извеждат няколко числа на един ред - броят на
намерените разбивания.
Примерен вход:
100 50 20 10 5 2
25 11 10
Решение на примерния вход:
7 1 3
Обяснение - разбиване на 25: 20+5, 10+10+5, 10+5+5+5,
5+5+5+5+5, 10+5+2+2+2+2+2, 5+5+5+2+2+2+2+2, 5+2+2+2+2+2+2+2+2+2+2