6. sada domácich zadaní

Najneskorší termín odovzdania: 7.4.2013 (nedeľa) o 21:00
Odovzdávané súbory: Rebus.java

Doplňujúce požiadavky:

  • riešenia, ktoré nebude možné skompilovať (t.j. riešenia so syntaktickými chybami) nebudú hodnotené,
  • zdrojový kód správne naformátujte (CTRL+SHIFT+F),
  • komentovaný zdrojový kód

Matematický rébus (5 bodov)

Igor našiel v jednom časopise takýto matematický rébus:

Vložte medzi niektoré cifry čísla 123456789 znamienko + alebo - tak, aby výsledok vytvoreného výrazu bol 100.

Igor ako skúsený riešiteľ rébusov rýchlo našiel riešenie: 100 = 123 - 45 - 67 + 89. Vtedy si ale Igor položil ďalšiu otázku. Koľko rôznych riešení má táto úloha?

Vytvorte pre Igora program, ktorý bude zisťovať, počet rôznych riešení rébusu. Program bude čítať vstup z textového súboru s názvom rebusy.txt:

123456789 100
123456789 99
12344321 325
111222333 22

Formát súboru je taký, že každý riadok predstavuje jeden rébus ako dve medzerou oddelené čísla. Prvé číslo (nanajvýš 15-ciferné) predstavuje postupnosť cifier a druhé číslo predstavuje požadovaný výsledok po vložení znamienok + a - do tejto postupnosti.

Program nech vytvorí výstupný súbor PoctyRieseni.txt, ktorý bude obsahovať pre každý rébus celkový počet jeho riešení - pre i-ty rébus bude počet jeho riešení zapísaný v i-tom riadku.

11
17
3
60