Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Operacja na pieniądzach
Forum PHP.pl > Forum > Przedszkole
nexis
Jak powinien wyglądać kod programu pozwalający obliczyć liczbę sposobów wydania reszty równej 1 zł.

Do dyspozycji mamy oczywiście monety: 1gr, 2gr, 5gr, 10gr, 20gr, 50gr, 1 zł.

Np.

100*1gr - 1 sposób
50gr+50gr-2 sposób
itd.

Dziękuję z góry za pomoc!
Ziels
Popróbuj z tablicami
  1. <?php
  2. $nominaly = array(
  3. '1',
  4. '2',
  5. '5',
  6. '10',
  7. '20',
  8. '50',
  9. '100',
  10. )
  11. ?>
nexis
Tą odpowiedzią jakoś mi nie pomogłeś. Wiadomo, że tablicami, ale jak powinny wyglądać pętle?
Sedziwoj
Ogólnie to problem jest kombinatoryczny, i można na kartce to policzyć, tylko że ja nigdy w tym mocny nie byłem.

100 50 20 10 5 2 1
1 0 0 0 0 0 0
0 1 0 0 0 0 50
0 1 0 0 0 1 48
...
0 1 0 0 0 25 0
0 1 0 0 1 0 45
0 1 0 0 1 1 43
...
0 1 0 0 1 22 1
...
0 1 0 0 10 0 0

Może niezbyt ładnie ale to powinno zadziałać biggrin.gif
Czyli zagnieżdżone pętle z warunkami.

tylko bez pierwszego i zaczynać od końca (od 1gr), czyli nie 50 na start a
0 0 0 0 0 0 100
i grosze zawsze uzupełniają, jeśli przy iteracji np. 2 przekroczy się 100 to pętla break aby z iterować 5.
nexis
Znalazłem coś całkiem na temat. Potrafiłby to ktoś przełożyć na php?

http://www.pwsz.legnica.edu.pl/~robs/korki/reszty.pdf (50 KB)
Kas
To chyba nic trudnego. Oto ten kod php przełożony z tego kodu (czy to był jakiś język programowania?)

  1. <?php
  2. = 1;
  3. = h;
  4.  
  5. while i < 1
  6. {
  7. if Q[i] + W[j] < k
  8. {
  9. i++;
  10. if i == m + 1 {
  11. echo("Nie znaleziono.");
  12. break;
  13. }
  14. elseif Q[i] + W[j] > K
  15. {
  16. j--;
  17. if j == 0
  18. {
  19. echo("Nie znaleziono.");
  20. break;
  21. }
  22. }
  23. else
  24. {
  25. echo ("Znaleziono");
  26. break;
  27. }
  28. }
  29. ?>


Pisałem na szybko, więc moga być błędy.
nexis
Cytat(Kas @ 23.11.2006, 21:30:35 ) *
Pisałem na szybko, więc moga być błędy.


Raczej nie mogą, a są. Prosiłem o napisanie to poprawnie w php, a Ty napisałeś to w jakimś pseudojęzyku.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.