import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int amountOfPeople = 0;
while (true) {
System.out.println("ÐдÑавÑÑвÑйÑе! СкажиÑе пожалÑйÑÑа, на ÑколÑкиÑ
Ñеловек необÑ
одимо ÑазделиÑÑ ÑÑÑÑ?");
try {
amountOfPeople = Integer.parseInt(scanner.nextLine());
if (amountOfPeople == 1) {
System.out.println("ÐолиÑеÑÑво Ñеловек, введÑннÑÑ
полÑзоваÑелем, Ñавно 1. Ð ÑÑом ÑлÑÑае Ð½ÐµÑ ÑмÑÑла ниÑего ÑÑиÑаÑÑ Ð¸ делиÑÑ.");
} else if (amountOfPeople < 1) {
System.out.print("ÐолиÑеÑÑво Ñеловек менÑÑе 1. ÐÑо некоÑÑекÑное знаÑение Ð´Ð»Ñ Ð¿Ð¾Ð´ÑÑÑÑа. ");
} else {
break;
}
} catch (NumberFormatException e) {
System.out.println("ÐекоÑÑекÑнÑй ввод. ÐожалÑйÑÑа, введиÑе Ñелое ÑиÑло.");
}
}
System.out.println("ÐолиÑеÑÑво Ñеловек " + amountOfPeople);
TradingCalculator tradingCalculator = new TradingCalculator(amountOfPeople);
tradingCalculator.calculateAndDisp();
}
}
class TradingCalculator {
private double totalCost = 0.0; // иÑÐ¾Ð³Ð¾Ð²Ð°Ñ ÑÑоимоÑÑÑ
private int amountOfPeople; // колиÑеÑÑво Ñеловек
private List productsList = new ArrayList<>();
public TradingCalculator(int amountOfPeople) {
this.amountOfPeople = amountOfPeople;
}
public void calculateAndDisp() {
Scanner scanner = new Scanner(System.in);
String productName;
System.out.println("ÐапиÑиÑе 'ÐавеÑÑиÑÑ' Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÑÑÑÑов.");
while (true) {
System.out.println("ÐведиÑе название ÑоваÑа:");
productName = scanner.nextLine();
if (productName.equalsIgnoreCase("завеÑÑиÑÑ")) {
break;
}
double productPrice = 0.0;
while (true) {
try {
System.out.println("ÐведиÑе ÑÑоимоÑÑÑ ÑоваÑа: ");
productPrice = Double.parseDouble(scanner.nextLine());
if (productPrice < 0) {
System.out.println("СÑоймоÑÑÑ ÑоваÑа не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾ÑÑиÑаÑелÑной.");
} else {
break;
}
} catch (NumberFormatException e) {
System.out.println("ÐекоÑÑекÑнÑй ввод. ÐожалÑйÑÑа, введиÑе ÑиÑло.");
}
}
totalCost += productPrice;
productsList.add(productName);
System.out.println("Ð¢Ð¾Ð²Ð°Ñ " + productName + " добавлен");
}
System.out.println("\nÐобавленнÑе ÑоваÑÑ:");
for (String product : productsList) {
System.out.println(product);
}
double individualCost = totalCost / amountOfPeople;
String formattedIndividualCost = formatter(individualCost);
for (int i = 0; i < amountOfPeople; i++) {
System.out.println("ÐоÑÑÑ " + (i + 1) + " должен заплаÑиÑÑ " + formattedIndividualCost);
}
System.out.println("ÐбÑÐ°Ñ ÑÑоимоÑÑÑ Ð²ÑеÑ
ÑоваÑов: " + totalCost);
}
private String formatter(double amount) {
int rubles = (int) amount;
int kopecks = (int) ((amount - rubles) * 100);
String rublesText = (rubles % 10 == 1 && rubles % 100 != 11) ? "ÑÑблÑ" : ((rubles % 10 >= 2 && rubles % 10 <= 4) && (rubles % 100 < 10 || rubles % 100 >= 20)) ? "ÑÑблÑ" : "ÑÑблей";
String kopecksText = (kopecks % 10 == 1 && kopecks % 100 != 11) ? "копейка" : ((kopecks % 10 >= 2 && kopecks % 10 <= 4) && (kopecks % 100 < 10 || kopecks % 100 >= 20)) ? "копейки" : "копеек";
return rubles + " " + rublesText + " " + kopecks + " " + kopecksText;
}
}