import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static float totalCost = 0;
public static void main(String[] args) {
int quantity = firstInput();
Map receipt = secondInput();
thirdOutput(quantity, receipt);
}
//ФÑнкÑÐ¸Ñ Ð¿ÐµÑвой ÑаÑÑи
//Ðа ÑколÑко лÑдей бÑдем делиÑÑ ÑÑеÑ
static int firstInput() {
Scanner in = new Scanner(System.in);
System.out.println("Ðа ÑколÑкиÑ
Ñеловек необÑ
одимо ÑазделиÑÑ ÑÑеÑ?");
boolean proverka = true;
int quantity = 0;
while (proverka) {
if (in.hasNextInt()) {
quantity = in.nextInt();
if (quantity <= 1) {
System.out.println("ÐÑ Ð¾ÑиблиÑÑ, Ð²Ñ Ð²Ð²ÐµÐ»Ð¸ менÑÑе 2, а именно: " + quantity + "\n ÐожалÑйÑÑа повÑоÑиÑе ввод.");
} else {
proverka = false;
}
} else {
System.out.println("ÐÑ Ð¾ÑиблиÑÑ, Ð²Ñ Ð²Ð²ÐµÐ»Ð¸ " + in.next() + " вмеÑÑо Ñелого ÑиÑла. \n ÐожалÑйÑÑа повÑоÑиÑе ввод.");
}
}
return quantity;
}
//ФÑнкÑÐ¸Ñ Ð²ÑоÑой ÑаÑÑи
//ЧÑо бÑло заказано и по какой ÑÑоимоÑÑи, Ñ ÑоÑноÑÑÑÑ Ð´Ð¾ копеек.
static Map secondInput(){
boolean checkCost = true;
boolean checkEnter = true;
float cost = 0;
// int count = 0;
String product = "";
Map receipt = new HashMap();
System.out.println("ÐведиÑе заказанное блÑдо-ÑоваÑ.");
while (checkEnter){
Scanner in = new Scanner(System.in);
//ТоваÑ
product = in.nextLine(); // Ð¢Ð¾Ð²Ð°Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñ Ð¿Ñобелом в имени
if(product.toLowerCase().equals("завеÑÑиÑÑ")){
checkEnter = false;
break;
}
//СÑоимоÑÑÑ
System.out.println("ÐведиÑе ÑÑоимоÑÑÑ Ð´Ð¾ копеек(.00).");
while (checkCost) {
if(!(in.hasNextFloat())){
System.out.println("ÐÑ Ð²Ð²ÐµÐ»Ð¸ " + in.next() + " ÑÑо не поÑ
оже на ÑÑоимоÑÑÑ.\n ÐожалÑйÑÑа повÑоÑиÑе ввод.");
}
else {
cost = Math.round(in.nextFloat()*100)/100.0f;
if(cost > 0){
checkCost = false;
}
else{
System.out.println("ÐÑ Ð²Ð²ÐµÐ»Ð¸ " + cost + ", ÑÑо непÑавилÑÐ½Ð°Ñ ÑÑоимоÑÑÑ.\n ÐожалÑйÑÑа повÑоÑиÑе ввод.");
}
}
}
//Ðобавим в маÑÑив
receipt.put(product, cost);
totalCost += cost;
System.out.println("ÐÑ Ð´Ð¾Ð±Ð°Ð²Ð¸Ð»Ð¸ в Ñек " + product + " по ÑÑоимоÑÑи " + cost);
System.out.println("ÐÑли Ð²Ñ Ñ
оÑиÑе завеÑÑиÑÑ Ð²Ð²Ð¾Ð´ - набеÑиÑе \"ÐавеÑÑиÑÑ\" или введиÑе новÑй ÑоваÑ.");
checkCost = true;
// count += 1;
// if(count == 5){
// break;
// }
}
return receipt;
}
//ÐÑоÑедÑÑа ÑÑеÑей ÑаÑÑи
static void thirdOutput(int quantity, Map receipt){
float perCost;
int intPerCost;
String sRubOne = "ÑÑблÑ";
String sRubls = "ÑÑблÑ";
String sMoreRubls = "ÑÑблей";
System.out.println("ÐобавленнÑе ÑоваÑÑ:");
Iterator> iterator = receipt.entrySet().iterator();
while (iterator.hasNext()){
Map.Entry entry = iterator.next();
String product = entry.getKey();
Float cost = entry.getValue();
// System.out.println(String.format(text,product,cost));
System.out.println(product + " ÑÑÐ¾Ð¸Ñ " + cost);
}
perCost = totalCost / quantity;
if (perCost * (double)(quantity) < totalCost){
perCost += 0.01f;
}
intPerCost = (int) Math.ceil(perCost);
System.out.println(String.format("ÐбÑÐ°Ñ ÑÑоимоÑÑÑ ÑÑеÑа " + totalCost + ", каждÑй должен внеÑÑи %.2f %s или %d %s", perCost, GetRubls(intPerCost), intPerCost, GetRubls(intPerCost)));
}
public static String GetRubls(int num){
int preLastDigit = num % 100/10;
if(preLastDigit == 1){
return "ÑÑблей";
}
switch(num % 10){
case 1:
return "ÑÑблÑ";
case 2:
case 3:
case 4:
return "ÑÑблÑ";
default:
return "ÑÑблей";
}
}
}
// Ðапоминалка "ÐалÑкÑлÑÑÐ¾Ñ ÑÑеÑа"
// 1. Ðадаем вопÑоÑÑ Ð² конÑоли
// 2. СÑиÑаем полÑзоваÑелÑÑкий ввод
// 3. ÐоказÑваем ÑпиÑок ÑоваÑов и показÑваем ÑÑÐ¼Ð¼Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из дÑÑзей