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

Задача 2 - фирма от изпита на 28.08.2016

Задача номер 2 от тук:

https://judge.softuni.bg/Contests/274/Programming-Basics-Exam-28-August-2016

за фирма ме затруднява.

При мен се получава 71.4, което с Math.Floor - към по малкото целочислено число би го закръглило към 71. А очаквания изход е 72.

Аз съм го написал с Math.Ceiling. Идеи аз ли се бъркам някаде, или има някаква неточност в условието.

Закръглям най-накрая непосредствено преди печатане, така че не би трябвало да има неточности.

При проверката с втория вход:

99
3
1

Трябва да изкара изход: Not enough time!72 hours needed.

По условие е казано че трябва да се закръгли към по малкото целочислено число.

(Часовете трябва да са закръглени към по-ниско цяло число (Например –> 6.98 часа се закръглят на 6 часа).

 

var nHours = int.Parse(Console.ReadLine());
            var nDays = int.Parse(Console.ReadLine());
            var workers = int.Parse(Console.ReadLine());
            var inHours = 0.0;
            inHours = (nDays * 8) + ((workers * 2) * nDays) - (0.1*nDays*8); //Тук се получава: 3*8+1*2*3-0,1*3*8 = 24+6-2,4=27,6
            if (inHours >= nHours)
            {
                var diff = 0.0;
                diff = inHours - nHours;
                Console.WriteLine($"Yes!{diff=Math.Floor(diff)} hours left.");
            }
            else
            {
                var diff = 0.0;
                diff = nHours - inHours;//99-27.6=71.4
                Console.WriteLine($"Not enough time!{diff = Math.Ceiling(diff)} hours needed.");
            }

Тагове:
0
Programming Basics 27/11/2016 23:24:10
g_todorov avatar g_todorov 106 Точки

Ето и едно решение с дълги, но "говорящи" променливи  от мен:

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

namespace _02.Harvest
{
    class Program
    {
        static void Main(string[] args)
        {
            var neededHours = int.Parse(Console.ReadLine());
            var days = int.Parse(Console.ReadLine());
            var overtimeWorkers = int.Parse(Console.ReadLine());

            var realDays = days * 0.9;
            var workingHours = Math.Floor(realDays * 8);
            var overtime = overtimeWorkers * 2 * days;
            var totalWorkingHours = workingHours + overtime;
            
            if (totalWorkingHours>= neededHours)
            {
                var leftHours = totalWorkingHours - neededHours;
                Console.WriteLine("Yes!{0} hours left.", leftHours);
            }
            else
            {
                var insufficientHours = neededHours - totalWorkingHours;
                Console.WriteLine("Not enough time!{0} hours needed.", insufficientHours);
            }
        }
    }
}

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