import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
List items = new ArrayList<>();
List prices = new ArrayList<>();
System.out.println("ÐдÑавÑÑвÑйÑе! СколÑко гоÑÑей пÑиÑÑÑÑÑвовало?: ");
while (!scanner.hasNextInt()) {
scanner.next();
System.out.println("ÐÑибка! ÐведиÑе положиÑелÑное Ñелое ÑиÑло: ");
}
int number = scanner.nextInt();
while (number <= 1) {
if (number == 1) {
System.out.println("ÐÑибка! ÐведиÑе ÑиÑло болÑÑе 1: ");
} else {
System.out.println("ÐÑибка! ÐÑ Ð²Ð²ÐµÐ»Ð¸ ÑиÑло менÑÑе 1. ÐведиÑе колиÑеÑÑво гоÑÑей: ");
}
while (!scanner.hasNextInt()) {
scanner.next();
System.out.println("ÐÑибка! ÐведиÑе положиÑелÑное Ñелое ÑиÑло: ");
}
number = scanner.nextInt();
}
System.out.println("СпаÑибо! ÐолиÑеÑÑво гоÑÑей: " + number);
scanner.nextLine();
double total = 0.0;
boolean continueAddingItems = true;
while (continueAddingItems) {
System.out.println("ÐведиÑе название ÑоваÑа (Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ Ð²Ð²ÐµÐ´Ð¸Ñе 'ÐавеÑÑиÑÑ'): ");
String itemName = scanner.nextLine();
if (itemName.equalsIgnoreCase("ÐавеÑÑиÑÑ")) {
continueAddingItems = false;
} else if (!itemName.matches("[а-ÑÐ-ЯÑÐ\\s]+")) {
System.out.println("ÐÑибка! Ðазвание ÑоваÑа Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ ÑолÑко киÑиллиÑÑ. ÐаÑнÑм заново.");
continue;
} else {
items.add(itemName);
System.out.println("ÐÑ ÑÑпеÑно добавили ÑоваÑ. \nÐведиÑе ÑÐµÐ½Ñ ÑоваÑа Ñ ÐºÐ¾Ð¿ÐµÐ¹ÐºÐ°Ð¼Ð¸ (напÑимеÑ, 07.50, 10.05): ");
String priceString = scanner.nextLine();
if (!priceString.matches("\\d+(\\.\\d{2})")) {
System.out.println("ÐÑибка! СÑоимоÑÑÑ Ð½Ñжно ввеÑÑи Ñ ÐºÐ¾Ð¿ÐµÐ¹ÐºÐ°Ð¼Ð¸ (напÑимеÑ, 07.50, 10.05). ÐаÑнÑм заново ");
continue;
}
double price = Double.parseDouble(priceString);
prices.add(price);
total += price;
}
}
System.out.println("\nСпиÑок добавленнÑÑ
ÑоваÑов: ");
for (int i = 0; i < items.size(); i++) {
System.out.println(items.get(i) + ": " + prices.get(i));
}
System.out.println("\nÐбÑÐ°Ñ ÑÑоимоÑÑÑ ÑоваÑов: " + formatRubles(total));
double paymentPerGuest = total / number;
System.out.println("ÐаждÑй гоÑÑÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ заплаÑиÑÑ: " + formatRubles(paymentPerGuest));
}
public static String formatRubles(double amount) {
DecimalFormat decimalFormat = new DecimalFormat("#0.00");
String amountStr = decimalFormat.format(amount);
int rubles = (int) amount;
int lastTwoDigits = rubles % 100;
if (lastTwoDigits >= 11 && lastTwoDigits <= 14) {
return amountStr + " ÑÑблей";
}
int lastDigit = lastTwoDigits % 10;
String rublesStr;
if (lastDigit == 1) {
rublesStr = amountStr + " ÑÑблÑ";
} else if (lastDigit >= 2 && lastDigit <= 4) {
rublesStr = amountStr + " ÑÑблÑ";
} else {
rublesStr = amountStr + " ÑÑблей";
}
return rublesStr;
}
}