има ли друг начин да се реши тази задача?
(аз съм начинаещ)
Стана ми интересно докато си писах домашното и мисля че има и други начини по който може да се напише освен този който аз използвах и за това реших да питам.
{
class Program
{
static void Main(string[] args)
{
double vacationCost = double.Parse(Console.ReadLine());
int puzzles = int.Parse(Console.ReadLine());
int dolls = int.Parse(Console.ReadLine());
int teddyBears = int.Parse(Console.ReadLine());
int minions = int.Parse(Console.ReadLine());
int trucks = int.Parse(Console.ReadLine());
double sum = (puzzles * 2.6) + (dolls * 3) + (teddyBears * 4.1) + (minions * 8.2) + (trucks * 2);
int howManyToys = puzzles + dolls + teddyBears + minions + trucks;
if (howManyToys >= 50)
{
double discount = sum * 0.25;
double totalPrice = sum - discount;
totalPrice = totalPrice - (totalPrice * 0.10);
if (vacationCost <= totalPrice)
{
Console.WriteLine("Yes! {0:f2} lv left.", totalPrice - vacationCost);
}
else
{
Console.WriteLine("Not enough money! {0:f2} lv needed.", Math.Abs(totalPrice - vacationCost));
}
}
else
{
double totalPrice = sum;
totalPrice = totalPrice - (totalPrice * 0.10);
if (vacationCost <= totalPrice)
{
Console.WriteLine("Yes! {0:f2} lv left.", totalPrice - vacationCost);
}
else
{
Console.WriteLine("Not enough money! {0:f2} lv needed.", Math.Abs(totalPrice - vacationCost));
}
}
}
}
в джъдж вика че е вярно но аз в началото се опитвах да го напиша по друг начин като исках Console.WriteLine да бъде извън if/else само че не знам дали това е възможно и вярно (начина по който аз го писах не работеше в началото)
благодаря за отговора
имам същия въпрос за друга задача
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Scholarship
{
class Program
{
static void Main(string[] args)
{
double income = double.Parse(Console.ReadLine());
double grade = double.Parse(Console.ReadLine());
double minimumWage = double.Parse(Console.ReadLine());
double SocialScholarship = minimumWage * 0.35;
double GeniusScholarship = grade * 25;
if (minimumWage <= income && grade <= 4.50)
{
Console.WriteLine("You cannot get a scholarship!");
}
else if (grade <= 4.50 && minimumWage >= income)
{
Console.WriteLine("You cannot get a scholarship!");
}
else if (grade >= 4.50 && grade <= 5.49 && minimumWage <= income)
{
Console.WriteLine("You cannot get a scholarship!");
}
else if (minimumWage <= income && grade >= 5.50)
{
Console.WriteLine($"You get a scholarship for excellent results {Math.Floor(GeniusScholarship)} BGN");
}
else if (minimumWage >= income && grade >= 5.50)
{
Console.WriteLine($"You get a scholarship for excellent results {Math.Floor(GeniusScholarship)} BGN");
}
else if(grade >= 4.50 && grade <= 5.49 && minimumWage >= income)
{
Console.WriteLine($"You get a Social scholarship {Math.Floor(SocialScholarship)} BGN");
}
}
}
}
излезе ми 100/100 в джъдж ама тоя код е много грозен и сложен и със сигурност има по-лесни начини да се реши, ако някой има време и му се занимава може да напише друг начин че да се просветля малко
Следващият път ще е добре да даваш условието на задачата и линк към нея в Judge
Това е решението ти, изчистено от повторяема логика:
мерси
като гледам твоя код и моя код и се чудя кви са тея глупости дето ми идваха в главата да ги пиша ама имаше нещо което ме бъркаше и за това толкова дълго го направих