import java.util.locale; import java.util.scanner; public class Plecak {
static double wybierz_zachlannie(double wagi[], double wartosci[], int liczba_towarow, double pojemnosc){ int korzystna = 0; //na pocztek zakładamy, e najkorzystniej wybra pierwsz substancj for(int i = 1; i < liczba_towarow; i++){ //szukamy lepszego wyboru if (wartosci[korzystna]/wagi[korzystna] < wartosci[i]/wagi[i]) korzystna=i; pojemnosc = pojemnosc - wagi[korzystna]; //zmniejszamy pojemno plecaka o wag zabranej substancji if (pojemnosc >= 0) //jeli chcielimy zabra za duo - pojemno stanie si ujemna! System.out.printf(Locale.ENGLISH,wagi[korzystna] + " jednostek substancji o wartosci " + wartosci[korzystna] + "\n"); else System.out.printf(Locale.ENGLISH,(wagi[korzystna] + pojemnosc) + " sporód " + wagi[korzystna] + " jednostek substancji o wartosci " + wartosci[korzystna] + "\n"); //podmieniamy wag i warto wybranej substancji na wag i warto substancji ostatniej na licie wagi[korzystna] = wagi[liczba_towarow - 1]; wartosci[korzystna] = wartosci[liczba_towarow - 1]; return pojemnosc; public static void main(string[] args) { //wczytanie danych Scanner in=new Scanner(System.in); in.uselocale(locale.english); "); "); double pojemnosc; int liczba_towarow; System.out.printf(Locale.ENGLISH,"Podaj pojemnosc plecaka: "); pojemnosc = in.nextdouble(); System.out.printf(Locale.ENGLISH,"Podaj liczbe substancji: "); liczba_towarow = in.nextint(); double wagi[] = new double[liczba_towarow]; double wartosci[] = new double[liczba_towarow]; for(int i=0; i<liczba_towarow; i++){ System.out.printf(Locale.ENGLISH,"Podaj wage " + (i+1) + " towaru: wagi[i] = in.nextdouble(); System.out.printf(Locale.ENGLISH,"Podaj wartosc " + (i+1) + " towaru: wartosci[i] = in.nextdouble(); System.out.printf(Locale.ENGLISH,"Oplaca sie zabrac:\n"); while(pojemnosc > 0 && liczba_towarow > 0){ pojemnosc = wybierz_zachlannie(wagi, wartosci, liczba_towarow, pojemnosc); liczba_towarow--;
main
1 2 3 4 5 6 7 8 9 10 11 import java.util.locale; import java.util.scanner; public class Planowanie { static int wybierz_zachlannie(int pocz[], int kon[], int liczba_zajec, int dotychczasowy_koniec){ int korzystny = 0; //na pocztek zakładamy, e najkorzystniej wybra pierwszy wykład for(int i = 1; i < liczba_zajec; i++){ //szukamy lepszego wyboru if (kon[korzystny] > kon[i]) korzystny = i; if (pocz[korzystny] >= dotychczasowy_koniec){ //jeli wykład zaczyna si póiej ni dotychczas wybrane - moemy go uwzgldni System.out.printf(Locale.ENGLISH,pocz[korzystny] + " - " + kon[korzystny] + "\n"); dotychczasowy_koniec = kon[korzystny]; //podmieniamy terminy wybranego wykładu na terminy wykładu ostatniego na licie pocz[korzystny] = pocz[liczba_zajec - 1];
kon[korzystny] = kon[liczba_zajec - 1]; return dotychczasowy_koniec; public static void main(string[] args) { //wczytanie danych Scanner in=new Scanner(System.in); in.uselocale(locale.english); int dotychczasowy_koniec = 0; int liczba_zajec; System.out.printf(Locale.ENGLISH,"Podaj liczbe zajec: "); liczba_zajec = in.nextint(); int pocz[] = new int[liczba_zajec]; int kon[] = new int[liczba_zajec]; for(int i=0; i<liczba_zajec; i++){ System.out.printf(Locale.ENGLISH,"Podaj godzine rozpoczecia wykladu numer " + (i+1) + ": "); pocz[i] = in.nextint(); System.out.printf(Locale.ENGLISH,"Podaj godzine zakonczenia wykladu numer " + (i+1) + ": "); kon[i] = in.nextint(); System.out.printf(Locale.ENGLISH,"Maksymalna lista niekolidujcych wykladow moze zawierac:\n"); while(liczba_zajec > 0){ dotychczasowy_koniec = wybierz_zachlannie(pocz, kon, liczba_zajec, dotychczasowy_koniec); liczba_zajec--;
import java.util.locale; import java.util.scanner; public class Piramida { public static void main(string[] args) { //wczytanie danych Scanner in=new Scanner(System.in); in.uselocale(locale.english); int wysokosc; System.out.printf(Locale.ENGLISH,"Podaj wysokosc piramidy: "); wysokosc = in.nextint(); int piramida[][] = new int[wysokosc][wysokosc]; for(int i=0; i<wysokosc; i++){ System.out.printf(Locale.ENGLISH,"Podaj elementy znajdujce si w wierszu numer " + (i+1) + ": \n"); for(int j=0; j<=i; j++){ System.out.printf(Locale.ENGLISH,"element " + (j+1) + ": "); piramida[i][j] = in.nextint(); System.out.printf(Locale.ENGLISH,"Wybrane elementy to kolejno:\n"); int ostatni=0; System.out.printf(Locale.ENGLISH,piramida[0][ostatni]+"\n"); for(int i=1; i<wysokosc; i++){ if(piramida[i][ostatni]>piramida[i][ostatni+1]){ //wybór lepszego z dwóch moliwych elementów System.out.printf(Locale.ENGLISH,piramida[i][ostatni]+"\n"); else{ System.out.printf(Locale.ENGLISH,piramida[i][ostatni+1]+"\n");
ostatni++; import java.util.locale; import java.util.scanner; public class Reszty_dlugie { public static void main(string[] args) { //wczytanie danych Scanner in=new Scanner(System.in); in.uselocale(locale.english); int zlote; int grosze; System.out.printf(Locale.ENGLISH,"Podaj kwote reszty do wydania: \n"); System.out.printf(Locale.ENGLISH,"zl: "); zlote = in.nextint(); System.out.printf(Locale.ENGLISH,"gr: "); grosze = in.nextint(); grosze = 100*zlote + grosze; while(grosze >= 500){ System.out.printf(Locale.ENGLISH,"5zl"); grosze = grosze - 500;
while(grosze >= 200){ System.out.printf(Locale.ENGLISH,"2zl"); grosze = grosze - 200; while(grosze >= 100){ System.out.printf(Locale.ENGLISH,"1zl"); grosze = grosze - 100; while(grosze >= 50){ System.out.printf(Locale.ENGLISH,"50gr"); grosze = grosze - 50; while(grosze >= 20){ System.out.printf(Locale.ENGLISH,"20gr"); grosze = grosze - 20; while(grosze >= 10){ System.out.printf(Locale.ENGLISH,"10gr"); grosze = grosze - 10; while(grosze >= 5){ System.out.printf(Locale.ENGLISH,"5gr"); grosze = grosze - 5; while(grosze >= 2){ System.out.printf(Locale.ENGLISH,"2gr"); grosze = grosze - 2; while(grosze >= 1){ System.out.printf(Locale.ENGLISH,"1gr"); grosze = grosze - 1; System.out.printf(Locale.ENGLISH,"\n"); import java.util.locale; import java.util.scanner; public class Reszty { public static void main(string[] args) { //wczytanie danych Scanner in=new Scanner(System.in); in.uselocale(locale.english);
int nominaly[] = {500,200,100,50,20,10,5,2,1; int n = 0; //aktualnie wydawany nominał (indeks tablicy nominaly) int zlote; int grosze; System.out.printf(Locale.ENGLISH,"Podaj kwote reszty do wydania: \n"); System.out.printf(Locale.ENGLISH,"zl: "); zlote = in.nextint(); System.out.printf(Locale.ENGLISH,"gr: "); grosze = in.nextint(); grosze = 100*zlote + grosze; "zl"); while(grosze > 0){ if(grosze >= nominaly[n]){ if (n<3) System.out.printf(Locale.ENGLISH,nominaly[n]/100 + else System.out.printf(Locale.ENGLISH,nominaly[n] + "gr"); grosze = grosze - nominaly[n]; if (grosze!= 0) System.out.printf(Locale.ENGLISH,","); else n++; System.out.printf(Locale.ENGLISH,"\n");
import java.util.locale; import java.util.scanner; public class Koraliki { static int wybierz_zachlannie(int korale[], int liczba_sznurow, int czas){ int najkrotszy, drugi; //dwa najkrotsze sznury //inicjujemy te wartoci długociami dwóch pierwszych sznurów if (korale[0] < korale[1]){ najkrotszy = 0; drugi = 1; else{ najkrotszy = 1; drugi = 0; for(int i = 2; i < liczba_sznurow; i++){ //szukamy lepszego wyboru if (korale[najkrotszy] > korale[i]){ drugi = najkrotszy; najkrotszy = i; else if (korale[drugi] > korale[i]){ drugi = i; //wyliczamy i dodajemy czas potrzebny na poołczenie sznurów czas = czas + korale[najkrotszy] + korale[drugi]; //podmieniamy długo najkrótszego sznura przez długo nowopowstałego korale[najkrotszy] = korale[najkrotszy] + korale[drugi]; //podmieniamy długo drugiego znalezionego sznura przez długo ostatniego korale[drugi] = korale[liczba_sznurow - 1]; return czas; public static void main(string[] args) { //wczytanie danych Scanner in=new Scanner(System.in); in.uselocale(locale.english); int liczba_sznurow; System.out.printf(Locale.ENGLISH,"Podaj liczbe sznurow korali: "); liczba_sznurow = in.nextint(); int korale[] = new int[liczba_sznurow];
for(int i=0; i<liczba_sznurow; i++){ System.out.printf(Locale.ENGLISH,"Liczba korali na sznurze nr " + (i+1) + ": "); korale[i] = in.nextint(); sznur int czas = 0; while(liczba_sznurow > 1){ //dopóki nie połczymy wszystkich w jeden wybierz_zachlannie(korale, liczba_sznurow, czas); liczba_sznurow--; System.out.printf(Locale.ENGLISH,"Potrzeba przynajmniej " + czas + " sekund.\n"); 5 80 45 56 62 79
4 5 6 6 1000 1200 1100 1300 1100 1100 1200 1300 1000 1300 1500 2100