Advertisement
fensa08

#APS Lab 1/1

Oct 16th, 2019
1,848
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.30 KB | None | 0 0
  1. Средна вредност Problem 1 (2 / 4)
  2.  
  3. За дадена низа од N (1≤N≤50) природни броеви, да се најде бројот кој е најблиску до нивниот просек. Ако постојат два броја со исто растојание до просекот, да се врати помалиот од нив. На пример за низата 1, 2, 3, 4, 5 просекот е (1 + 2 + 3 + 4 + 5) / 5 = 15 / 5 = 3, што значи дека бројот кој треба да се врати и е најблиску до просекот е 3.
  4.  
  5. За низата 1, 2, 3, 4, 5, 6 просекот е 3.5 и двата броја 3 и 4 се на исто растојание од просекот. Точната вредност која треба да се врати е помалиот од нив, а тоа е 3.
  6.  
  7. Во низата може да има дупликати.
  8.  
  9. Првиот број од влезот е бројот на елементи во низата N, а потоа во секој ред се дадени броевите.
  10.  
  11. Име на класата (Java): Array
  12. **Забелешка:** Да се креира податочна структура низа и истата да се искористи во задачата.
  13.  
  14.  
  15. Sample input
  16.  
  17. 5
  18. 1
  19. 2
  20. 3
  21. 4
  22. 5
  23.  
  24. Sample output
  25.  
  26. 3
  27.  
  28. ==========================================================================================================================================
  29.  
  30. import java.io.BufferedReader;
  31. import java.io.IOException;
  32. import java.io.InputStreamReader;
  33.  
  34. public class Array<E> {
  35.  
  36.     private int size;
  37.     private E[] niza;
  38.  
  39.  
  40.     public Array(int size) {
  41.         this.size = size;
  42.         niza = (E[])new Object[size];
  43.     }
  44.  
  45.     public int getSize() {
  46.         return size;
  47.     }
  48.  
  49.     public void setSize(int size) {
  50.         this.size = size;
  51.     }
  52.  
  53.     public E[] getNiza() {
  54.         return niza;
  55.     }
  56.  
  57.     public void setNiza(E[] niza) {
  58.         this.niza = niza;
  59.     }
  60.  
  61.     public static int brojDoProsek(Array<Integer> niza){
  62.         //Vashiot kod tuka...
  63.  
  64.         float prosek = 0;
  65.         for(int i = 0; i < niza.size;i++){
  66.             prosek += niza.niza[i];
  67.         }
  68.         prosek = prosek / niza.size;
  69.  
  70.         int min = 10000;
  71.         for(int i = 0; i < niza.size; i++){
  72.             if( Math.abs(niza.niza[i] - prosek ) < min)
  73.                 min =  (int) Math.abs(niza.niza[i] - prosek );
  74.         }
  75.  
  76.         int num = 1000;
  77.         for(int i = 0; i < niza.size; i++){
  78.             if( ((int)Math.abs(prosek - niza.niza[i])) == min&&niza.niza[i] < num)
  79.                 num = niza.niza[i];
  80.         }
  81.  
  82.  
  83.         return num;
  84.  
  85.     }
  86.  
  87.  
  88.     public static void main(String[] args) throws IOException{
  89.         BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in));
  90.         String s = stdin.readLine();
  91.         int N = Integer.parseInt(s);
  92.  
  93.         //Vashiot kod tuka...
  94.         Array<Integer> niza = new Array<Integer>(N);
  95.         Integer[]moja = new Integer[N];
  96.         for(int i = 0; i < N; i++){
  97.             String input = stdin.readLine();
  98.             moja[i] = Integer.parseInt(input);
  99.         }
  100.  
  101.         niza.setNiza(moja);
  102.         System.out.println(brojDoProsek(niza));
  103.     }
  104.  
  105.  
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement