Task "Converter"

Здравейте!
Имам проблем със задачата за конверера на гориво.

В IntellyJ изписвам следния код, който работи безупречно и изпълнява всички форматни, логически и математически изисквания на задачата, но, въпреки това, получавам отговр “Wrong Answer”:

Къде греша???

public class Main {

public static void main(String[] args) {
// write your code here
    Scanner scanner = new Scanner(System.in);

        float m = Float.parseFloat(scanner.nextLine());
            if(m>=1 && m<=100) {
                double result = Math.floor(100 * 4.54 / m / 1.6);
                System.out.printf("%.0f liters per 100 km", result);

Опитах още няколко варианта, които, в IntelliJ, работят, но платформата, все така, връща “Wrong Answer”… Ето и последния от тях:

package com.company;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
// write your code here
    Scanner scanner = new Scanner(System.in);

        int m = Integer.parseInt(scanner.nextLine());
            if(1<=m && m<=100) {
                int result = (int) (100 * 4.54 / m / 1.6);


                System.out.println(result+" liters per 100 km");
1 Like

Здравей, може би защото изписваш “liters”, а по условие и в judge системата най-вероятно е заложено да е изписано “litres”. По-добре винаги копирай това, което се изисква като отговор, за да избегнеш такива грешки. Успех!

2 Likes

Много ти БЛАГОДАРЯ!!! :slight_smile:

Желая ти здрава, щастлива и успешна нова година!

Задачката стана, но, определено, имаше полза като от мъките и различните варианти, които писах, така и твоята помощ, за която, още веднъж, ти благодаря!

2 Likes

Пробвай така:

Здравейте, а някой има ли идея защо в моя случай решението минава само с 40 от 100 точки:
let input = [

'44', 

];

let print = this.print || console.log;

let gets = this.gets || ((arr, index) => () => arr[index++])(input, 0);

let m = +gets(); //miles per galon

if (m >= 1 && m <= 100){;

result = Math.round(100 * 4.54 / m / 1.6);

// let rounded = Math.round(result);

console.log(`${result} litres per 100 km`);

}

Защо имаш ; на if реда ? Отделно това в скобите не се знае в какъв ред се изпълнява , пробвай да отделиш * 100 извън скобите

в първия случай за “;” дори не съм забелязала, както иVS :smiley: . А за втория - резултатът е същият - тестовете в джъдж пак ми дават 40 т, пък със зададените инпути в условието във VS всичко си е наред.

Math.Round може би прави проблем. Аз бих го кастнал към int
Понеже Math.Round може би го закръгля нагоре ако е над .5 , примерно ако е 14.6 ще го направи 15 , а в задачата по-скоро трябва да остане 14

1 Like