Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Program do szukania sumy liczb
Forum PHP.pl > Forum > Przedszkole
Wojciechovsky
Cześć!
Próbuję napisać aplikację w PHP, która odczytuje liczby z bazy danych, a następnie sprawdza która suma liczb jest podzielna przez 10, 100 lub 1000 i jednocześnie mniejsza od 1000. Na koniec wypisze te liczby.

Przykładowe dane wejściowe:
700, 8, 4, 20, 5, 30, 80 , 300, 2, 90
Wynik:
700, 300
8, 2
20, 80
8, 2, 90
Nie mam kompletnie pojęcia jak się do tego zabrać, zwłaszcza że nie jest sprecyzowane ilu liczb ma być to suma. Będę wdzięczny za pomoc/kawałek kodu.
emstawicki
1. Tworzysz wszystkie możliwe sumy (https://pl.wikipedia.org/wiki/Kombinatoryka)
2. Wykluczasz sumy większe od 1000.
3. Sprawdzasz czy reszta z dzielenia przez 10, 100 lub 1000.

Jak nie ma sprecyzowanej wielkości danych wejściowych dzielników i innych rzeczy korzystaj z pętli for z ograniczeniem count oraz foreach
trueblue
Możesz też sprawdzać podzielność według zasady: jeśli liczba kończy się jednym zerem, to jest podzielna przez 10, kończy się dwoma zerami, podzielna przez 100, itd.
Wojciechovsky
Dziękuję za pomoc.

W jaki sposób powinny zostać kombinacje 3 oraz 4 elementowe?
Dla dwuelementowych mam następujacy kod:

  1. $tab1[0] = 265;
  2. $tab1[1] = 430;
  3. $tab1[2] = 550;
  4. $tab1[3] = 60;
  5. $ilosc=count($tab1);
  6. $tab2 = $tab1;
  7. echo "Dwuelementowe: <br>";
  8. for($i=0;$i<$ilosc;$i++)
  9. {
  10. $j=$i+1;
  11. while($j<$ilosc)
  12. {
  13. echo $tab1[$i]." + ".$tab2[$j]. "=";
  14. echo $tab1[$i]+$tab2[$j].'<br/>';
  15. $j++;
  16. }
  17. }
emstawicki
Teraz każda dwuelementowa może tworzyć trójelementowe kombinacje, oczywiście z wykluczeniem tych dwóch, które dają x. Potem każda trójelementowa tworzy ... i tak dalej aż osiągniesz n po k.

http://phpedia.pl/wiki/Rekurencja
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.