Advertisement
Guest User

Untitled

a guest
Apr 9th, 2020
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.93 KB | None | 0 0
  1. /**********************************************************************************************************
  2.  * Programmeerimisharjutused. LTAT.03.007
  3.  * 2019/2020 kevadsemester
  4.  *
  5.  * Kodutöö. Ülesanne nr /7a/
  6.  * Teema:
  7.  *            Rekursiooni kasutamine ülesannetes.
  8.  *
  9.  * Autor: Markkus Koodi
  10.  *
  11.  ***********************************************************************************************************/
  12.  
  13. import java.util.ArrayList;
  14. import java.util.Arrays;
  15. import java.util.Collections;
  16. import java.util.List;
  17.  
  18. /***********************************************************************************
  19.  * Programmi peaklass, mis sisaldab ka testimismeetodit.
  20.  * Autor: Markkus Koodi.
  21.  ***********************************************************************************/
  22.  
  23. public class Ulesanne7a {
  24.     //7a-1
  25.     static List<Integer> misMündid = new ArrayList<>();//Et teada saada mis münte kasutada on vaja, et summat ära maksta.
  26.  
  27.     /**
  28.      *
  29.      * @param raha
  30.      * @param summa Antud täisarv.
  31.      * @param i Antud täisarv.
  32.      * @param j Antud täisarv.
  33.      * @return Tagastab tõ
  34.      */
  35.  
  36.     static boolean kasOnTäpneRaha(int[] raha, int summa, int i, int j){
  37.         if(i == summa){return true;}
  38.         if(j == raha.length){return false;}
  39.         return kasOnTäpneRaha(raha, summa, raha[j] + i, j + 1) && misMündid.add(raha[j]) || kasOnTäpneRaha(raha, summa, i, j+1);
  40.     }
  41.  
  42.     static void täpneRaha(int[] mündid, int makstavRaha) {
  43.         misMündid.clear();
  44.         StringBuilder taskusOn = new StringBuilder();
  45.         StringBuilder ostuSumma = new StringBuilder();
  46.  
  47.         taskusOn.append("Taskus on mündid ");
  48.         for (int element : mündid) taskusOn.append(element + " ");
  49.         System.out.println(taskusOn.toString().strip());
  50.  
  51.         ostuSumma.append("Ostusumma s = " + makstavRaha + " ");
  52.         if (kasOnTäpneRaha(mündid, makstavRaha, 0, 0)) {
  53.             Collections.sort(misMündid);
  54.             for (int i = 0; i < misMündid.size(); i++) {
  55.                 if (i == misMündid.size() - 1) ostuSumma.append(misMündid.get(i));
  56.                 else ostuSumma.append(misMündid.get(i) + "+");
  57.             }
  58.         } else ostuSumma.append("Pole võimalik tasuda!");
  59.         System.out.println(ostuSumma.toString().strip() + "\n");
  60.     }
  61.  
  62.     static int väljastaSõnad(String[] esimene, String[] teine){
  63.         System.out.println("Antud sõnajärjendid: " + Arrays.asList(esimene) + " ja " + Arrays.asList(teine));
  64.         System.out.println("Nendest koostatud laused: ");
  65.         return sõnadeJärjestamine(esimene, teine, "", 0, 0);
  66.     }
  67.  
  68.     static int sõnadeJärjestamine(String[] esimene, String[] teine, String s, int i, int n){
  69.         int lauseid = 0;
  70.         if(i > esimene.length || n > teine.length){
  71.             return 0;
  72.         }
  73.  
  74.         if(i == esimene.length && n == teine.length){
  75.             s = s.strip();
  76.             System.out.printf("|%s|\n", s);
  77.             return 1;
  78.         }
  79.         if(i < esimene.length){
  80.             lauseid += sõnadeJärjestamine(esimene,teine,s + esimene[i] + " ", i+1, n);
  81.         }
  82.         if(n < teine.length){
  83.             lauseid += sõnadeJärjestamine(esimene,teine,s + teine[n] + " ", i, n + 1);
  84.         }
  85.         return lauseid;
  86.     }
  87.  
  88.  
  89.     public static void main(String[] args) {
  90.         System.out.println("+".repeat(70) + "\n");
  91.  
  92.         System.out.println("Kodutöö nr 7a-1." + " ".repeat(37) + "Programmi väljund");
  93.         System.out.println("=".repeat(69) + ":\n");
  94.         int[] test1 = new int[]{1, 5, 10, 30, 50, 200};
  95.         täpneRaha(test1, 137);
  96.         int[] test2 = new int[]{2, 20, 30, 50, 100, 200};
  97.         täpneRaha(test2, 120);
  98.         int[] test3 = new int[]{1, 30, 50, 200};
  99.         täpneRaha(test3, 163);
  100.         int[] test4 = new int[]{2, 30, 50, 100};
  101.         täpneRaha(test4,75);
  102.         int[] test5 = new int[]{1, 5, 10, 20, 30, 50, 100};
  103.         täpneRaha(test5, 163);
  104.         int[] test6 = new int[]{1, 2, 20, 30, 50, 200};
  105.         täpneRaha(test6, 101);
  106.         int[] test7 = new int[]{1, 2, 100};
  107.         täpneRaha(test7, 191);
  108.         System.out.println("=".repeat(69) + ".\n");
  109.  
  110.         System.out.println("Kodutöö nr 7a-2." + " ".repeat(37) + "Programmi väljund");
  111.         System.out.println("=".repeat(69) + ":\n");
  112.         System.out.println("=".repeat(69) + ".\n");
  113.  
  114.         String[] essa = new String[]{"Essa", "Teine", "Kolmas"};
  115.         String[] tessa = new String[]{"Neljas", "Viies", "Kuues"};
  116.         System.out.println("Kokku: " + väljastaSõnad(essa, tessa) + "\n");
  117.  
  118.         String[] esimene = new String[]{"Peeter", "Paan", "Malle"};
  119.         String[] teine = new String[]{"Karu", "Kati", "Aadu"};
  120.         System.out.println("Kokku: " + väljastaSõnad(esimene,teine) + "\n");
  121.  
  122.         System.out.println("+".repeat(70));
  123.         System.out.println("Markkus Koodi" + " ".repeat(35) + new java.sql.Timestamp(System.currentTimeMillis()));
  124.     }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement