Na ile sposobów można zapłacić złotówkę?

Problem do przeanalizowania: Pewna woda w sklepie kosztuje 1zł. Oblicz na ile sposobów można za nią zapłacić gotówką – bez wydawania reszty.

package pl.am.analizy.problem1;

import java.util.Scanner;

public class Pieniadze {
    public static void main(String[] args) {

        System.out.println("Podaj kwotę w groszach (max 500 groszy)");
        Scanner scanner = new Scanner(System.in);
        int kwota = scanner.nextInt();

        int iloscSposobow = 0;

        for (int i500=0; i500<=kwota/500; i500++) {
            for (int i200=0; i200<=kwota/200; i200++) {
                System.out.println("ilość dwójek: " + i200);
                for (int i100=0; i100<=kwota/100; i100++) {
                    System.out.println("    ilość złotówek: " + i100);
                    for (int i50 =0; i50<=kwota/50; i50++) {
                        for (int i20=0; i20<=kwota/20; i20++) {
                            for (int i10=0; i10<=kwota/10; i10++) {
                                for (int i5 = 0; i5 <= kwota/5; i5++) {
                                    for (int i2 = 0; i2 <= kwota/2; i2++) {
                                        for (int i1 = 0; i1 <= kwota; i1++) {
                                            int iloscGroszy = i1 + i2*2 + i5*5 + i10*10 + i20*20 + i50*50 + i100*100 + i200*200 + i500*500;

                                            if (iloscGroszy == kwota) {
                                                iloscSposobow++;
                                                //System.out.println("ilosc jednogroszowek: " + i1 +", ilosc dwugroszówek: " + i2 + ", ilosc pięciogroszówek: " + i5);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }



        System.out.println("iloscSposobow = " + iloscSposobow);
    }
}
package pl.am.analizy.problem1;

public class Tabelka {
    public static void main(String[] args) {
        for (int i5 = 0; i5 <= 20; i5++) {
            System.out.println("Tabelka dla " + i5 + " pięciogroszówek");
            for (int i2 = 0; i2 <= 50; i2++) {
                for (int i1 = 0; i1 <= 100; i1++) {
                    int iloscGroszy = i1 + i2*2 + i5*5;
                    System.out.printf("%4d", iloscGroszy);
                }
                System.out.println();
            }
            System.out.println();
        }
    }
}

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *