Strona 1 z 1
[C/C++]Liczba na wszystkie sposoby dodawania
: 20 lis 2010, 22:52
autor: Wojtek94
Witam!
Potrzebuję wskazówki do algorytmu. Podaję liczbę 'n' i program podaje mi wszystkie możliwe sposoby jej uzyskania za pomocą dodawania wszystkich liczb naturalnych dodatnich.
Przykład:
Wejście:
3
Wyjście:
3
1+2
1+1+1
Jak widać przemienność dodawania pomijamy. Kiedyś widziałem przydatne do tego informacje po długim googlowaniu, ale teraz nie mogę tego znaleźć
Pozdrawiam.
Odp: [C/C++]Liczba na wszystkie sposoby dodawania
: 20 lis 2010, 23:02
autor: kabanek
możesz spróbować zrobić tak, że będziesz powoli rozbijać kolejną liczbę na mniejsze

czyli np dla 4:
4 = 3 + 1 = (2 + 1) + 1 = ((1 + 1) + 1) + 1

Odp: [C/C++]Liczba na wszystkie sposoby dodawania
: 20 lis 2010, 23:06
autor: Wojtek94
Takim sposobem pominę 2+2 zdaje się?
Odp: [C/C++]Liczba na wszystkie sposoby dodawania
: 20 lis 2010, 23:26
autor: sylweeczek
Jak masz n to zmniejszasz ją w pętli o 1 i za każdym razem wypisuj resztę składników z jakimi to co masz da ci daną liczbę n. hmmm takie masło maślane;/ może zrozumiesz na przykładzie n=4
4
4=3+1
4=2+(2)
4=2+1+1
4=1+(3)
4=1+((2)+1)
4=1+1+1+1
To co masz w nawiasach rozpisujesz podobnie jak 4. To pewnie można i jakoś sprytnie rekurencyjnie rozłożyć ale nie chce mi się teraz myśleć. Tylko mam takie pytanie po co? przy większych liczbach to strasznie zamuli procka?
Odp: [C/C++]Liczba na wszystkie sposoby dodawania
: 20 lis 2010, 23:35
autor: Wojtek94
Zadanko na infe : P
Input jest do 40, więc chyba da rade z takim rozwiązaniem.
Spróbuje coś napisać, ale chętnie też oczekuje nowych, optymalniejszych pomysłów

Dobranoc, pozdrawiam

Odp: [C/C++]Liczba na wszystkie sposoby dodawania
: 20 lis 2010, 23:52
autor: kabanek
Wojtek94 pisze:Takim sposobem pominę 2+2 zdaje się?
zgadza się

algorytm @sylweeczek wydaje się być ok

jedna funkcja rekurencyjna załatwi sprawę
