Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Napišite program koji pronalazi sve mogućnosti stavljanja + ili - ili ništa između
- brojeva 1, 2, …, 9 (u tom poretku)
- tako da je rezultat neki zadani cijeli broj x. Broj x treba učitati s tipkovnice.
- Potrebno je ispisati samo koliko postoji takvih mogućnosti.
- Primjer:
- Input: 100
- Output: 11
- ...zato što postoji 11 kombinacija kojima se može dobiti broj 100. Jedno od tih 11
- rješenja je npr.
- 1 + 2 + 3 - 4 + 5 + 6 + 78 + 9 = 100
- */
- #include <iostream>
- using namespace std;
- int x;
- int brojNacina(int n, int broj, int suma) {
- if (n == 9) {
- return suma + broj == x;
- }
- int iduci = n + 1;
- int nacina = 0;
- nacina += brojNacina(iduci, iduci, suma + broj);
- nacina += brojNacina(iduci, -iduci, suma + broj);
- broj *= 10;
- if (broj < 0)
- broj -= iduci;
- else
- broj += iduci;
- nacina += brojNacina(iduci, broj, suma);
- return nacina;
- }
- int main() {
- cin >> x;
- cout << brojNacina(1, 1, 0) << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement