Nested Loops 08. Fishing
Здравейте, някой дали може да ми каже къде бъркам...Всички входове ми излизат, а judjе Ми дава 40 точки.
условие:
Времето се затопля, сезона за риболов наближава и всички рибари тръпнат в очакване. Един от тези рибари е вашият стар познат Любо, който ви моли да му помогнете като напишете програма, която изчислява с каква печалба/загуба се връща от риболовния излет. За ВСЯКА трета уловена риба, рибаря не плаща такса, а получава пари за нея. Парите, които Любо ще получи или плати за една риба се образуват от сумата на ASCII стойността на всеки символ от името на рибата, разделена на килограмите на рибата.
Вход
На първия ред, се чете дневната квота (броя риби, които Любо може да хване) - цяло число [1…100]
След това се четат многократно по два реда:
⦁ името на рибата – текст
⦁ килограмите на рибата – реално число в интервала [1.00…1000.00]
Изход
Риболовът приключва при получаване на командата "Stop" или ако се достигне дневната квота.
⦁ Ако Любо достигне дневната квота първо да се изпише:
"Lyubo fulfilled the quota!"
След приключване на риболова на конзолата се печата един от двата реда:
⦁ Ако Любо е спечелил пари - "Lyubo's profit from {брои уловени риби} fishes is {спечелени пари} leva."
⦁ Ако Любо е загубил пари – "Lyubo lost {загубени пари} leva today."
Парите да са форматирани до втората цифра след десетичната запетая.
Примерен вход и изход
Вход Изход Обяснения
3
catfish
70
carp
20
tench
14 Lyubo fulfilled the quota!
Lyubo's profit from 3 fishes is 6.21 leva.
Вход Изход Вход Изход
10
Pike
15
Grass Carp
40
Common Rudd
7
Perch
20
Stop Lyubo's profit from 4 fishes is 75.26 leva. 6
Bluefish
17.4
Garfish
14.9
Stop
Lyubo lost 94.53 leva today.
Времето се затопля, сезона за риболов наближава и всички рибари тръпнат в очакване. Един от тези рибари е вашият стар познат Любо, който ви моли да му помогнете като напишете програма, която изчислява с каква печалба/загуба се връща от риболовния излет. За ВСЯКА трета уловена риба, рибаря не плаща такса, а получава пари за нея. Парите, които Любо ще получи или плати за една риба се образуват от сумата на ASCII стойността на всеки символ от името на рибата, разделена на килограмите на рибата.
Вход
На първия ред, се чете дневната квота (броя риби, които Любо може да хване) - цяло число [1…100]
След това се четат многократно по два реда:
Изход
Риболовът приключва при получаване на командата "Stop" или ако се достигне дневната квота.
След приключване на риболова на конзолата се печата един от двата реда:
Парите да са форматирани до втората цифра след десетичната запетая.
този код на JAVA дава 100/100
--------------------------------------------
package Nested_Loops.Nested_Loops_Exercise;
import java.util.Scanner;
public class E08Fishing {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int quota = Integer.parseInt(scanner.nextLine());
String input = scanner.nextLine();
int fishCounter = 0;
double profit = 0;
double lost = 0;
int fishValue = 0;
while (!input.equals("Stop")) {
String fishName = input;
double fishKg = Double.parseDouble(scanner.nextLine());
for (int i = 0; i < fishName.length(); i++) {
fishValue += (int) fishName.charAt(i);
}
fishCounter++;
if (fishCounter % 3 == 0) {
profit += fishValue / fishKg;
} else {
lost += fishValue / fishKg;
}
if (fishCounter == quota) {
System.out.println("Lyubo fulfilled the quota!");
break;
}
fishValue = 0;
input = scanner.nextLine();
}
if (profit >= lost) {
System.out.printf("Lyubo's profit from %d fishes is %.2f leva.", fishCounter, profit - lost);
} else {
System.out.printf("Lyubo lost %.2f leva today.", lost - profit);
}
}
}