Fishing Boat
Здравейте! Имам проблем с програмата. Първите два примера от задачата ги решава правилно, но Winter ми е грешно, помагайте.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _06FishingBoat
{
class Program
{
static void Main(string[] args)
{
int budget = int.Parse(Console.ReadLine());
string season = Console.ReadLine();
int numberOfFishermen = int.Parse(Console.ReadLine());
double price = 0;
if (season == "Spring")
{
price = 3000;
}
if (season == "Summer")
{
price = 4200;
}
if (season == "Autumn")
{
price = 4200;
}
if (season == "Winter")
{
price = 2600;
}
if (numberOfFishermen <= 6)
{
price*= 0.9;
}
else if (7 < numberOfFishermen && numberOfFishermen >= 11)
{
price *= 0.85;
}
else if (numberOfFishermen > 12)
{
price *= 0.75;
}
if (numberOfFishermen % 2 == 0)
{
if (season != "Autumn")
{
price *= 0.95;
}
}
if (budget >= price)
{
Console.WriteLine($"Yes! You have {(budget - price):F2} leva left.");
}
else
Console.WriteLine($"Not enough money! You need {(price - budget):F2} leva.");
}
}
}
Благодаря!
Здравейте,
Защо judge-a не ми дава повече от 60 точки, като сравнявам моя код с по-горните и не намирам разлика:
Моят код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FishingBoat
{
class Program
{
static void Main(string[] args)
{
int budget = int.Parse(Console.ReadLine());
string season = Console.ReadLine();
int numberFishers = int.Parse(Console.ReadLine());
int boatPrice = 0;
double discount = 0;
double moneyLeft = 0;
if (season == "Spring")
{
boatPrice = 3000;
}
if (season == "Summer")
{
boatPrice = 4200;
}
if (season == "Autumn")
{
boatPrice = 4200;
}
if (season == "Winter")
{
boatPrice = 2600;
}
if (numberFishers <= 6)
{
discount = boatPrice - (boatPrice * 0.10);
}
else if (numberFishers <= 11)
{
discount = boatPrice - (boatPrice * 0.15);
}
else if (numberFishers >= 12)
{
discount = boatPrice - (boatPrice * 0.25);
}
if (season != "Autumn")
{
if (numberFishers % 2 == 0)
{
discount = boatPrice - (boatPrice * 0.05);
}
}
if (budget >= discount)
{
Console.WriteLine($"Yes! You have {Math.Abs(budget - discount):f2} leva left.");
}
else
{
Console.WriteLine($"Not enough money! You need {Math.Abs(budget - discount):f2} leva.");
}
}
}
}
Опитай, като смениш boatPrice на double.
И Math.Abs не би трябвало да прави проблем, но е излишно, така че може да го махнеш.
С тези промени ми дава още по-малко точки......от 60 на 46.....
Аз сега видях, че Math.Abs го имаш и на втория „принт“, там ти трябва...
Здравейте, и за получавам 60 точки в judge. Ето кода ми: https://pastebin.com/F59ZvXXr
Някой би ли ме посъветвал къде греша?
https://pastebin.com/rH2WeLjc
Получавам максимум 86 в Judge.
edit: След няколко часа си открих грешката. Накрая бюджета трябва да е по голям или равен ...а не само по-голям.
Здравей,
budget >= total