Софтуерно Инженерство
Loading...
zdravko.nedelchev.9 avatar zdravko.nedelchev.9 11 Точки

Programming Basics Online Retake Exam - 12 January 2019 Задача 02. Renovation

https://pastebin.com/c6J7FeHU

Следната задача дава само 50 точки в Джъдж с решението, което съм предоставил. Огледах няколко пъти за грешки, но не мога да намеря никакви. ПОМОЩ!

 

PS: Ето условието на задачата : https://softuni.bg/downloads/svn/programming-basics/2018-11/Retake%20Exam/02.%20Renovation.pdf

0
Programming Basics with C# 12/02/2019 13:38:19
Stukz avatar Stukz 2 Точки

Понеже и аз имам проблем със същата задача ,но при крайното закръгляне а съм го задал да го прави но при първия примерен изход вместо 25.60 lv ми дава 25.6 lv       https://pastebin.com/2SVacB8q

0
Iv_Konov avatar Iv_Konov 245 Точки

Здравей, Stukz,

форматирвоката на отпечатването не е вярна. Ползвай този вид примерно - от по-горния код на zdravko.nedelchev.9

Моля те, само я преправи с твоите променливи.

====================================================

Console.WriteLine($"You'll need {nujnipari:f2} lv more.");

====================================================

 

Грешна:

Console.WriteLine("You'll need" + " " + Math.Round(totalmoney - budget, 2) + " " + "lv more.");

Math.Round - закръглява до втори знак, но САМО при нужда, т.е. при резултат 1209.65, но при 1209.60 ще даде 1209.6

 

Поздрави,

Иван

0
Stukz avatar Stukz 2 Точки

Благодаря ви сега всичко работи както трябва и все пак в Judge дава 90/100 ,не знам вече защо .

0
Iv_Konov avatar Iv_Konov 245 Точки

Здравей, Stukz,

като гледам равенството е изпуснато в if-a:

if
               (totalmoney <= budget)
            {
                Console.WriteLine($"{budget - totalmoney:f2} lv left.");
            }
            else
            {
                Console.WriteLine($"You'll need {totalmoney - budget:f2} lv more.");
            }

 

Поздрави,

Иван

0
GeorgiPanaiotov avatar GeorgiPanaiotov 0 Точки

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Renovation
{
    class Program
    {
        static void Main(string[] args)
        {
            double money = double.Parse(Console.ReadLine());
            double floorWidth = double.Parse(Console.ReadLine());
            double floorLenght = double.Parse(Console.ReadLine());
            double triangle = double.Parse(Console.ReadLine());
            double triangleHeight = double.Parse(Console.ReadLine());
            double tilePrice = double.Parse(Console.ReadLine());
            double price = double.Parse(Console.ReadLine());

            double floor = floorWidth * floorLenght;
            double triangleFace = (triangle * triangleHeight) / 2;
            double need = Math.Round((floor / triangleFace));
            double needTile = need + 5;
            double totalPrice = (needTile * tilePrice) + price;

            if (money >= totalPrice)
            {
                double left = money - totalPrice;
                Console.WriteLine($"{left:f2} lv left.");
            }
            else
            {
                double needMoney = totalPrice - money;
                Console.WriteLine($"You'll need {needMoney:f2} lv more.");
            }
        }
    }
}

 

някаква идея защо ми вади само 50% Джъдж

0
Iv_Konov avatar Iv_Konov 245 Точки

Здравей, Георги,

 

"Броят на плочките трябва да се закръгли към по-високо цяло число и да се прибавят още 5 броя фира."


т.е. това:
double need = Math.Round((floor / triangleFace));
трябва да бъде:
double need = Math.Ceiling((floor / triangleFace));

 

Поздрави,
Иванв:)

0
22/02/2019 23:48:53