Loading...
Thehea7 avatar Thehea7 1 Точки

03.Rounding Numbers

Здравейте Колеги,

 

Много си блъсках главата на тази задача, защо получавам само 75 точки, а всичко изглежда вярно.

Накрая след като сравнявах с други решения установих че само с кастване на (Int) пред (math.Round) дава 100 oт 100.

Проблемът е че все още не разбирам как това променя изхода по какъвто и да било начин, моля някой ако може да обясни.

 

Друго интересно наблудение е че ако ползвам decimal, дава само 50 от 100, но да не задълбаваме :D .

 

 

namespace _03.RoundingNumbers
{
    internal class Program
    {
        static void Main(string[] args)
        {

            double[] input = Console.ReadLine()
                .Split(" ")
                .Select(double.Parse)
                .ToArray();


            for (int i = 0; i < input.Length; i++)
            {
                Console.WriteLine($"{input[i]} => {(int)Math.Round(input[i], 0, MidpointRounding.AwayFromZero)}");

            }

        }
    }
}

 

3. Rounding Numbers Read an array of real numbers (space separated), round them in "away from 0" style and print the output as in the examples

Examples

Input

Output

0.9 1.5 2.4 2.5 3.14

0.9 => 1

1.5 => 2

2.4 => 2

2.5 => 3

3.14 => 3

-5.01 -1.599 -2.5 -1.50 0

-5.01 => -5

-1.599 => -2

-2.5 => -3

-1.50 => -2

0 => 0

0
C# Fundamentals 26/10/2023 21:14:48
icowwww avatar icowwww 2802 Точки
Best Answer

Здравей,

От .Net Core 3 нататък при преобразуване на double и float към стринг се използва друг стандарт.

В случая проблема при твоето решение, което е пуснато като .Net 6 код, е принтирането на signed zeros.

Например при вход "-0.1" ще принтираш -0.1 => -0. Тук обаче се очаква нула без минус отпред.

Тази задача е правена отдавна, когато в решенията в judge се пускаха като.Net Framework код. Твоето решение би проработило като .Net Framework код, например тук https://judge.softuni.org/Contests/Practice/Index/172#4

С това, че кастваш към инт оправяш проблема.

Ето тук проверявам за проблемната стойност и я сменям към очакваната без кастване към инт:

https://pastebin.com/xLEeKjWT

1
28/10/2023 00:53:18
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.