ToyShop- Хора малко помощ моля.
Хора,моля за малко помощ. С това решение получавам каквото ми трябва в IJ но чичо Judge ми дава само 60/100 :(
https://pastebin.com/pTvyYAVU
Хора,моля за малко помощ. С това решение получавам каквото ми трябва в IJ но чичо Judge ми дава само 60/100 :(
https://pastebin.com/pTvyYAVU
Така, както си написал кода, има два възможни пътя:
- if (toysQty > 50) -> ("Yes! %.2f lv left.", leftProfit)
- else if (toysQty < 50) -> ("Not enough money! %.2f lv needed.", leftProfit)
Виждам няколко проблема:
1. При toysQty == 50 няма да изведеш нищо, тъй като този сценарий липсва
2. Във всеки от двата покрити сценария парите може както да са достатъчни, така и да не стигнат, но никъде не правиш такава проверка
3. Има повторение на код в двата пътя, а това е лоша практика:
double rent = 0.1 * totalToysCost;
double profit = totalToysCost - rent;
double leftProfit = profit - holidayCost;
Помисли как може да решиш горните проблеми.
В началото помага, ако си разпишеш идеята за решаване на проблема (алгоритъма) на лист хартия и я проиграеш с няколко стойности.
Заповядай ! Това е 100/100
function toyShop(arg1, arg2, arg3, arg4, arg5, arg6) {
let excursionPrice = Number(arg1);
let quantityPuzles = Number(arg2);
let quantityDolls = Number(arg3);
let quantityBears = Number(arg4);
let quantityMinions = Number(arg5);
let quantityTrucks = Number(arg6);
let sum = ((quantityPuzles * 2.60) + (quantityDolls * 3) + (quantityBears * 4.10) +
(quantityMinions * 8.20) + (quantityTrucks * 2));
let quantityToys = (quantityPuzles + quantityDolls + quantityBears + quantityMinions + quantityTrucks);
if (quantityToys >= 50) {
sum = sum - (sum * 0.25);
profit = sum - (sum * 0.10);
if (profit >= excursionPrice) {
rest = profit - excursionPrice;
console.log(`Yes! ${rest.toFixed(2)} lv left.`);
} else {
rest = excursionPrice - profit;
console.log(`Not enough money! ${rest.toFixed(2)} lv needed.`);
}
} else {
profit = sum - (sum * 0.10);
if (profit >= excursionPrice) {
rest = profit - excursionPrice;
console.log(`Yes! ${rest.toFixed(2)} lv left.`);
} else {
rest = excursionPrice - profit;
console.log(`Not enough money! ${rest.toFixed(2)} lv needed.`);
}
}
}
Благодаря :)
import java.util.Scanner;
public class ToyShop {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double price = Double.parseDouble(scanner.nextLine());
int puzzle = Integer.parseInt(scanner.nextLine());
int doll = Integer.parseInt(scanner.nextLine());
int bear = Integer.parseInt(scanner.nextLine());
int minion = Integer.parseInt(scanner.nextLine());
int truck = Integer.parseInt(scanner.nextLine());
// logic
int toys = puzzle + doll + bear + minion + truck;
double sum = (puzzle * 2.6) + (doll * 3) + (bear * 4.1) + (minion * 8.2) + (truck * 2);
double discount = 0.0;
if (toys >= 50) {
discount = sum * .25;
}
double totalPrice = sum - discount;
totalPrice = totalPrice - ( totalPrice * 0.1);
if (price <= totalPrice ) {
System.out.printf("Yes! %.2f lv left.", totalPrice - price);
} else {
System.out.printf("Not enough money! %.2f lv needed.", price - totalPrice);
}
}
}
Благодаря MartinBG