Домашно от "Simple Operations & Calculations" - задача 06. "Charity Campaign"
Здравейте,
Относно гореспомената задача, когато подавам за проверка решението си в Judge-системата, от всички 10 теста, на които то се подлага, резултатът е 7 верни и 3 грешни отговора. Колкото и да се взирах в изходния код, така и не успях да си обясня кои са стойностите, за които се получава грешка и съответно да пробвам да оправя проблема. Може ли някой да ми помогне? Ето го и кодът:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Charity_Campaign
{
class Program
{
static void Main(string[] args)
{
int days = int.Parse(Console.ReadLine());
int cooks = int.Parse(Console.ReadLine());
int cakes = int.Parse(Console.ReadLine());
int wafers = int.Parse(Console.ReadLine());
int pancakes = int.Parse(Console.ReadLine());
if (days >= 0 && days <= 365 && cooks >= 0 && cooks <= 1000 && cakes >= 0 && cakes <= 2000
&& wafers >= 0 && wafers <= 2000 && pancakes >= 0 && pancakes <= 2000)
{
var prCakes = days * cooks * cakes * 45;
var prWafers = days * cooks * wafers * 5.80;
var prPancakes = days * cooks * pancakes * 3.20;
var profit = 7.0 / 8 * (prCakes + prWafers + prPancakes);
Console.WriteLine("{0:F2}", profit);
}
else
{
Console.WriteLine("Invalid entry!");
}
}
}
}
(резултатите на https://judge.softuni.bg/Contests/Submissions/View/8835718)
Предварително благодаря на всички отзовали се.
Ама всичко това е взето под внимание и направено! (Поради това и съвсем логично 7 от тестовете дават верни отговори - най-малко ако имаше грешка в математическата логика, би следвало и при тях получените резултати да не съвпаднат с очакваните). Все пак нека потвърдя казаното:
prCakes = days * cooks * cakes * 45 // това е сумата (в лв) от тортите за всички дни от всички участвали сладкари (брой дни (days) Х брой сладкари (cooks) Х брой торти на сладкар (cakes) Х цена на 1 торта (45))
prWafers = days * cooks * wafers * 5.80 // това пък е сумата от гофретите за всички дни от всички сладкари,
prPancakes = days * cooks * pancakes * 3.20; // това съответно е сумата от палачинките за всички дни от всички сладкари,
И за печалбата след приспадане на разходите по организацията имаме (1-1/8 = 7/8) от общата спечелена сума, т.е. profit = 7.0 / 8 * (prCakes + prWafers + prPancakes);
Не, мисля, че другаде е проблемът...
Така е, само че в кода на Deftimova, но не и в твоя.
Напротив, имам предвид, че в моя код това е отразено:
Ето (това е от него):
prCakes = days * cooks * cakes * 45 -> това е сумата (в лв) от тортите за всички дни от всички участвали сладкари (брой дни (days) Х брой сладкари (cooks) Х брой торти на сладкар (cakes) Х цена на 1 торта (45)). Както се вижда, взети са под внимание и броя дни, и броя сладкари, само че в променливата (prCakes) при мен е сумата от цената на всички торти за всички сладкари за целия период. Аналогично за гофретите и палачинките. Дали ще изведем пред скоби брой дни Х брой сладкари спрямо сумата от продажбите на 3-те изделия или ще смятаме за всяко изделие печалбата му за всички дни, а после ги събирме за трите, не е от значение.
prWafers = days * cooks * wafers * 5.80 // това пък е сумата от гофретите за всички дни от всички сладкари,
prPancakes = days * cooks * pancakes * 3.20; // това съответно е сумата от палачинките за всички дни от всички сладкари,
И за печалбата след приспадане на разходите по организацията имаме (1-1/8 = 7/8) от общата спечелена сума, т.е. profit = 7.0 / 8 * (prCakes + prWafers + prPancakes).