Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions Java4L5HW/src/alexrm84/Backpack.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package alexrm84;

import java.util.HashSet;

public class Backpack {

private final int MAX_WEIGHT=20;
private int maxPrice=0;

private HashSet<Item> items =new HashSet<>();
private HashSet<Item> resultItems = new HashSet<>();


public static void main(String[] args) {
Backpack backpack =new Backpack();
backpack.start();
backpack.display();
}

public void start(){
items.add(new Item("Ручка", 5, 1));
items.add(new Item("Карандаш", 4, 1));
items.add(new Item("Учебник", 20, 10));
items.add(new Item("Тетрадь", 10, 5));
items.add(new Item("Обед", 15, 15));
selectionOfItemsSimple(items);
}

private int getCurrentWeight(HashSet<Item> newItems){
int temp=0;
for (Item item:newItems) {
temp+=item.getWeight();
}
return temp;
}

private int getCurrentPrice(HashSet<Item> newItems){
int temp=0;
for (Item item:newItems) {
temp+=item.getPrice();
}
return temp;
}

public void selectionOfItemsSimple(HashSet<Item> newItems){
if (newItems.size()==0){
return;
}
if (getCurrentWeight(newItems)<=MAX_WEIGHT){
int check=getCurrentPrice(newItems);
if (check>=maxPrice){
maxPrice=check;
resultItems=newItems;
}
}
for (Item item:newItems) {
HashSet<Item> newSet =new HashSet<>(newItems);
newSet.remove(item);
selectionOfItemsSimple(newSet);
}
}

private void display(){
System.out.println("Оптимальный состав предметов дающий "+maxPrice+" состоит из:");
for (Item item:resultItems) {
System.out.print(item.getName()+" ");
}
}
}
20 changes: 20 additions & 0 deletions Java4L5HW/src/alexrm84/Exponentiation.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package alexrm84;

public class Exponentiation {

public static void main(String[] args) {
System.out.println(getResult(5,3));
System.out.println(getResult(5,0));
System.out.println(getResult(5,-3));
}

public static double getResult(int number,int degree){
if (degree==0){
return 1;
}
if (degree<0){
return 1/getResult(number,Math.abs(degree));
}
return number*getResult(number,degree-1);
}
}
25 changes: 25 additions & 0 deletions Java4L5HW/src/alexrm84/Item.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package alexrm84;

public class Item {
private int price;
private int weight;
private String name;

public Item(String name, int price, int weight) {
this.price = price;
this.weight = weight;
this.name=name;
}

public int getPrice() {
return price;
}

public int getWeight() {
return weight;
}

public String getName() {
return name;
}
}