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
) - в детайлите от моя солюшън
Правилно ли съм разбрал - грешката е от превишено врме.
Ако да как да намаля времето?
Благодаря предварително.
Димитър
Задача: фирма
Фирма получава заявка за изработването на проект, за който са необходими определен брой часове. Фирмата разполага с определен брой дни. През 10% от дните служителите са на обучение и не могат да работят по проекта. Един нормален работен ден във фирмата е 8 часа. Всеки служител може да работи по проекта в извънработно време по 2 часа на ден.
Часовете трябва да са закръглени към по-ниско цяло число (например –> 6.98 часа се закръглят на 6 часа).
Напишете програма, която изчислява дали фирмата може да завърши проекта навреме и колко часа не достигат или остават.
Входни данни
Входът се чете от конзолата и съдържа точно 3 реда:
Изходни данни
Да се отпечата на конзолата един ред:
Колеги благодаря Ви. Точно както казахте.
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 процента.
Благодаря на всички.
Поздрави
Димитър
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 точки.
Аз същи имам нужда от помощ със задачата. Може ли да ми кажете къде греша. При проверка ми дава верен отговор, но в 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);
}
}
}