package secer;
import java.util.Scanner;
public class Zadatak {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int slatkisi[] = new int[100]; // slatkisi koji se unose
int max = 0;
System.out.println("Unesite slatkise, 0 za kraj unosa:");
for(int i = 0; i < 100; i++) { // unos slatkisa
int novi = input.nextInt();
if(novi == 0)
break;
slatkisi[i] = novi;
}
System.out.println("Unesite maximum secera:");
max = input.nextInt();
sugarHigh(slatkisi, max); // poziv zadate funkcije
}
private static void sugarHigh(int[] slatkisi, int max) {
int uzet_secer = 0;
int indeksi_uzetih[] = new int[100];
int broj_uzetih = 0;
int min = 0;
int i = 0;
while(slatkisi[i++] !=0) {
min = nadji_min(slatkisi, min); // trazi sledeci najmanji element posle min, i min postaje taj element
if(uzet_secer + min <= max) {
uzet_secer += min;
indeksi_uzetih[broj_uzetih++] = nadji_indeks(slatkisi, min); // u niz nadjenih ubacujemo indeks tog elementa
}
else
break;
}
System.out.println("Najbolja kombinacija:");
System.out.print("[");
for(int j = 0; j < broj_uzetih; j++) {
System.out.print(indeksi_uzetih[j]);
if(j != broj_uzetih - 1)
System.out.print(" ");
}
System.out.print("]");
}
private static int nadji_indeks(int[] slatkisi, int min) {
for(int i = 0; i < 100; i++)
if(slatkisi[i] == min)
return i;
return -1;
}
private static int nadji_min(int[] slatkisi, int min) {
int m = Integer.MAX_VALUE;
for(int i = 0; i < 100; i++)
if(slatkisi[i] > min && slatkisi[i] < m)
m = slatkisi[i];
return m;
}
}
Hey there,
alright!
Then my best idea is to open a new project on https://repl.it/ or https://codesandbox.io/ and show us what you already got and ask some questions.
1 Like