import java.text.DecimalFormat; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int numberOfPeople; String productList = ""; double totalSum = 0.0; while (true) { System.out.print("ÐведиÑе колиÑеÑÑво гоÑÑей: "); numberOfPeople = scanner.nextInt(); if (numberOfPeople == 1) { System.out.println("ÐÐµÑ ÑмÑÑла ÑÑиÑаÑÑ Ð¸ делиÑÑ Ð½Ð° одного Ñеловека!"); } else if (numberOfPeople < 1) { System.out.println("ÐекоÑÑекÑное колиÑеÑÑво гоÑÑей!"); } else { break; } } Calculator calculator = new Calculator(numberOfPeople); System.out.println("СпиÑок добавленнÑÑ ÑоваÑов: " + productList); System.out.println("ÐбÑÐ°Ñ ÑÑмма вÑÐµÑ ÑоваÑов: " + totalSum + " ÑÑб."); Formatter formatter = new Formatter(calculator.getAmountPerPerson()); System.out.println("СÑмма на каждого Ñеловека: " + formatter.getResult()); } public static class Calculator { private int people; private double amountPerPerson; public Calculator(int people) { Scanner scanner = new Scanner(System.in); StringBuilder productList = new StringBuilder(); double totalSum = 0.0; while (true) { System.out.print("ÐведиÑе название ÑоваÑа (или 'ÐавеÑÑиÑÑ' Ð´Ð»Ñ Ð²ÑÑ Ð¾Ð´Ð°): "); String productName = scanner.next().trim(); if (productName.equalsIgnoreCase("ÐавеÑÑиÑÑ")) { break; } System.out.print("ÐведиÑе ÑÑоимоÑÑÑ ÑоваÑа (в ÑоÑмаÑе ÑÑбли.копейки): "); double productPrice = scanner.nextDouble(); scanner.nextLine(); // ЧиÑаем Ñимвол новой ÑÑÑоки поÑле ÑÑÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑÑоимоÑÑи totalSum += productPrice; productList.append(productName).append(", "); System.out.println("Ð¢Ð¾Ð²Ð°Ñ ÑÑпеÑно добавлен."); } amountPerPerson = totalSum / people; System.out.println("СпиÑок добавленнÑÑ ÑоваÑов: " + productList); System.out.println("ÐбÑÐ°Ñ ÑÑмма вÑÐµÑ ÑоваÑов: " + totalSum + " ÑÑб."); } public double getAmountPerPerson() { return amountPerPerson; } } public static class Formatter { private double amount; private final String result; public Formatter(double amount) { DecimalFormat formatter = new DecimalFormat("0.00"); String formattedAmount = formatter.format(amount); String currencySuffix; int wholePart = (int) amount; int remainderOf10 = wholePart % 10; int remainderOf100 = wholePart % 100; if (remainderOf10 == 1 && remainderOf100 != 11) { currencySuffix = " ÑÑблÑ."; } else if (remainderOf10 >= 2 && remainderOf10 <= 4 && (remainderOf100 < 10 || remainderOf100 >= 20)) { currencySuffix = " ÑÑблÑ."; } else { currencySuffix = " ÑÑблей."; } result = formattedAmount + currencySuffix; } public String getResult() { return result; } } }