Loading...
eli.tt avatar eli.tt 1 Точки

Подготовка за изпит: зад. 2 "Коледен базар" - помощ

Здравейте, не мога да открия откъде идват 2-та грешни отговора при тестовете в Judge-системата при проверката на следния код:

using System;

namespace Christmas_Market
{
    class Program
    {
        static void Main(string[] args)
        {
            double goal = double.Parse(Console.ReadLine());
            int fantasyNum = int.Parse(Console.ReadLine());
            int horrorNum = int.Parse(Console.ReadLine());
            int romanceNum = int.Parse(Console.ReadLine());

            double grossSum = fantasyNum * 14.90 + horrorNum * 9.80 + romanceNum * 4.30;
            double netSum = 0.80 * grossSum;
            double difference = netSum - goal;
            if (difference >= 0)
            {
                double toSellers = Math.Round(0.10 * difference);
                double donated = netSum - toSellers;
                Console.WriteLine($"{donated:F2} leva donated.");
                Console.WriteLine($"Sellers will receive {toSellers} leva.");
            }
            else
            {
                difference = Math.Abs(difference);
                Console.WriteLine($"{difference:F2} money needed.");
            }
        }
    }
}

Може ли някой да ми помогне? Благодаря предварително.

0
Programming Basics
kkaraivanov avatar kkaraivanov 486 Точки

Здравей. За начало премахни всичко Math.....Промени тази променлива

double toSellers = Math.Round(0.10 * difference);

като я направиш

double toSellers = (int)(0.10 * difference);

Ако не се получи, пиши да ти дам целия код за сравнение.

0
eli.tt avatar eli.tt 1 Точки

Благодаря, с тази корекция Judge го хареса на 100%, но не мога да си обясня защо с Math.Round() не стана...

0
kkaraivanov avatar kkaraivanov 486 Точки

В случая Math.Round връща грешен резултат защото не ни е необходимо закръгляне. В този случай правилно би било да ползваш Math.Floor и нямаше да ти върне грешен отговор.

0
eli.tt avatar eli.tt 1 Точки

Вярно, в условието бе казано, че сумата трябва да е закръглена към най-близкото цяло число надолу. Как не обърнах внимание! Благодаря отново.

0
n.yordanov avatar n.yordanov 1 Точки

Ето моето решение на Java, дано ти е от помощ.

package com.company;

import java.util.Scanner;

public class Task2_ChristmasMarket {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        double goal = Double.parseDouble(scanner.nextLine());
        int fantasy = Integer.parseInt(scanner.nextLine());
        int horror = Integer.parseInt(scanner.nextLine());
        int romantic = Integer.parseInt(scanner.nextLine());

        double sum = fantasy * 14.90 + horror * 9.80 + romantic * 4.30;
        double DDS = 0.2 * sum;
        double finalSum = sum - DDS;

        if (finalSum > goal) {
            double remain = finalSum - goal;
            double bonus = Math.floor(.1 * remain);
            double left = finalSum - bonus;
            System.out.printf("%.2f leva donated.%n", left);
            System.out.printf("Sellers will receive %.0f leva.", bonus);
        }
        else {
            double needed = goal - finalSum;
            System.out.printf("%.2f money needed.", needed);
        }
    }
}
0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.