Loading...
NAstra avatar NAstra 0 Точки

Simple Conditions - Exam Problems - 05. Firm

Здравейте,

Задача: фирма, от книгата "Основи на програмирането"/ прости проверки -изпитни задачи.

След тестване в Judge - резултат 90/100.

 static void Main(string[] args)
        {
            uint projectHours = uint.Parse(Console.ReadLine()); 
            ushort availableDays = ushort.Parse(Console.ReadLine()); 
            byte overtimeWorkers = byte.Parse(Console.ReadLine()); 

            double workHours =Math.Floor(0.9f * availableDays) * 8 + overtimeWorkers * 2 * availableDays;

            double b = projectHours - workHours;
            if (b<0)
            {
                Console.WriteLine("Yes!{0} hours left.", -b );
            }
            else
            {
                Console.WriteLine("Not enough time!{0} hours needed.", b );
            }

Предполагам заради превишено време:

(Allowed working time: 0.100 sec. ) - Judge  

(

Test #1 (Incorrect answer)

Time used: 0.015 s

Memory used: 7.73 MB

) - в детайлите от моя солюшън

Правилно ли съм разбрал - грешката е от превишено врме.

Ако да как да намаля времето?

Благодаря предварително.

Димитър

Тагове:
0
Programming Basics
icowwww avatar icowwww 2791 Точки

Грешката не е във времето, а в неправилен отговор. Ако ми дадеш условието ще ти кажа къде е сгрешено

0
24/06/2017 19:05:26
NAstra avatar NAstra 0 Точки

Задача: фирма

Фирма получава заявка за изработването на проект, за който са необходими определен брой часове. Фирмата разполага с определен брой дни. През 10% от дните служителите са на обучение и не могат да работят по проекта. Един нормален работен ден във фирмата е 8 часа. Всеки служител може да работи по проекта в извънработно време по 2 часа на ден.

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

Напишете програма, която изчислява дали фирмата може да завърши проекта навреме и колко часа не достигат или остават.

Входни данни

Входът се чете от конзолата и съдържа точно 3 реда:

  • На първия ред са необходимите часове – цяло число в интервала [0 ... 200 000].
  • На втория ред са дните, с които фирмата разполага – цяло число в интервала [0 ... 20 000].
  • На третия ред е броят на служителите, работещи извънредно – цяло число в интервала [0 ... 200].

Изходни данни

Да се отпечата на конзолата един ред:

  • Ако времето е достатъчно:
    • "Yes!{оставащите часове} hours left.”.
  • Ако времето НЕ Е достатъчно:
    • “Not enough time!{недостигащите часове} hours needed.“.
0
NAstra avatar NAstra 0 Точки

Колеги благодаря Ви. Точно както казахте. 

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

namespace Firma
{
    class Program
    {
        static void Main(string[] args)
        {
            uint projectHours = uint.Parse(Console.ReadLine()); 
            ushort availableDays = ushort.Parse(Console.ReadLine()); 
            byte overtimeWorkers = byte.Parse(Console.ReadLine()); 
            float workDays = 0.9f * availableDays;
            float overtime = overtimeWorkers * 2 * availableDays;
            double workHours =Math.Floor(workDays * 8 + overtime);


            if (projectHours <= workHours)
            {
                Console.WriteLine("Yes!{0} hours left.", workHours - projectHours );
            }
            else
            {
                Console.WriteLine("Not enough time!{0} hours needed.", projectHours - workHours );
            }

        }
    }
}
В червено е това което което коригирах. 

от < поправих на <= и взе че излезе вярна на 100 процента.

 

0
NAstra avatar NAstra 0 Точки

Благодаря на всички.

 

Поздрави

Димитър

0
BDostov avatar BDostov 0 Точки

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

namespace Firm
{
    class Program
    {
        static void Main(string[] args)
        {
            var projectHours = int.Parse(Console.ReadLine());
            var availableDays = int.Parse(Console.ReadLine());
            var overtimeWorkers = int.Parse(Console.ReadLine());

            var workDays = availableDays * 0.90;
            var overtime = overtimeWorkers * 2 * availableDays;
            var workHours = Math.Floor(workDays * 8 + overtime);

            if (projectHours <= workHours)
            {
                Console.WriteLine("Yes!{0} hours left.", workHours - projectHours);
            }
            else
            {
                Console.WriteLine("Not enough time!{0} hours needed.", projectHours - workHours);
            }
        }
    }
}
 

Някой може ли да ми каже къде ми е грешката, понеже ми дава само 10/100 точки.

0
kera123 avatar kera123 3 Точки

Аз същи имам нужда от помощ със задачата. Може ли да ми кажете къде греша. При проверка ми дава верен отговор, но в Judge ми дава грешка. Ето и кода: 

using System;
                    
public class Program
{
    public static void Main()
    {
        var projectHours = int.Parse(Console.ReadLine());
        var availableDays = int.Parse(Console.ReadLine());
        var overtimeWorkers = int.Parse(Console.ReadLine());
        
        var workDays = availableDays * 0.9f;
        var overtime = overtimeWorkers * 2 * availableDays;
        var workHours = Math.Floor((workDays * 8) + overtime);
                
        if (projectHours <= workHours)
        { Console.WriteLine("Yes! {0} hours left.", workHours - projectHours);
        }
        else
        { Console.WriteLine("Not enough time! {0} hours needed.", projectHours - workHours);
        }       
        
    }
}

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