Currency_Converter
Решение на задачата и някакво логично обяснение блягодаря!
Решение на задачата и някакво логично обяснение блягодаря!
Напиши поне от къде е тази задача, ние не можем да гадаем коя задача и за какво е !
Ето моето решение на задачата - https://pastebin.com/rwptX7gZ - използва се if-else, за което можеш да си прочетеш тук - https://java-book.softuni.bg/chapter-03-simple-conditions.html
Дано да ти помогне :)
https://pastebin.com/ch5CG8Gf
Това е, ако става въпрос за C#.
Ето и моето решение :)
https://pastebin.com/2kdezxPa
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace hm5
{
    class Program
    {
        static void Main(string[] args)
        {
            var num = double.Parse(Console.ReadLine());
            var first = Console.ReadLine().ToLower();
            var second = Console.ReadLine().ToLower();
            if (first == "bgn")
            {
                if (second == "usd")
                {
                    Console.WriteLine( Math.Round(num * 1.79549, 2));
                }
                else if (second == "eur")
                {
                    Console.WriteLine( Math.Round(num / 1.95583, 2));
                }
                else if (second == "gbp")
                {
                    Console.WriteLine( Math.Round(num * 2.53405, 2));
                }
            }
            if (first == "usd")
            {
                if(second == "bgn")
                {
                    Console.WriteLine(Math.Round(num * 1.79549, 2));
                }
                else if(second == "eur")
                {
                    Console.WriteLine(Math.Round((num * 1.79549) / 1.95583, 2));
                }
                else if(second == "gbp")
                {
                    Console.WriteLine(Math.Round((num * 1.79549) / 2.53405, 2));
                }
            }
            if(first == "eur")
            {
                if(second == "bgn")
                {
                    Console.WriteLine(Math.Round(num * 1.95583, 2));
                }
                else if(second == "usd")
                {
                    Console.WriteLine(Math.Round((num * 1.95583) / 1.79549, 2));
                }
                else if(second == "gbp")
                {
                    Console.WriteLine(Math.Round((num * 1.95583) / 2.53405, 2));
                }
            }
            if(first == "gbp")
            {
                if(second == "bgn")
                {
                    Console.WriteLine(Math.Round(num * 2.53405, 2));
                }
                else if(second == "usd")
                {
                    Console.WriteLine(Math.Round((num * 2.53405) / 1.79549, 2));
                }
                else if(second == "eur")
                {
                    Console.WriteLine(Math.Round((num * 2.53405) * 1.95583, 2));
                }
            }
        }
    }
}
 
Това е моето решение 100/100 ми дава в Judge-а, малко по различно е от на останаите.
Като обяснение: В началото въвеждаш входна и изходна променлива (inputCurrency/ outputCurrency),
след това използваш If взимаш входна променлива, която първо нека да е равна на USD и като изход слагаш всяка една друга валута (BGN, EUR, GBP). В всеки IF пишеш формулата чрез коята се изчислява от едната валута към другата (Пример от кода: var dollarsToEUR = (value * 1.79549) / 1.95583; ) и на долния ред закръгляш до втория знак след десетичната запетая (пример: Console.WriteLine(Math.Round(dollarsToEUR, 2)); ). Така правиш от всяка една валута към вкяка останалите (от BNG към EUR, GBP и USD, от EUR към BGN, GBP и USD, и от GBP към BGN, EUR и USD)
Дано поне малко съм помогнала
using System;
class CurrencyConverter
{
    static void Main()
    {
        var value = double.Parse(Console.ReadLine());                    
        var inputCurrency = Console.ReadLine();                             
        var outputCurrency = Console.ReadLine();                         
        if (inputCurrency == "USD" && outputCurrency == "BGN")          \\ 
        {
            var dollarsToBGN = (value * 1.79549) / 1.0;                 
            Console.WriteLine(Math.Round(dollarsToBGN, 2));         
        }
        if (inputCurrency == "USD" && outputCurrency == "EUR")
        {
            var dollarsToEUR = (value * 1.79549) / 1.95583;
            Console.WriteLine(Math.Round(dollarsToEUR, 2));
        }
        if (inputCurrency == "USD" && outputCurrency == "GBP")
        {
            var dollarsToGBP = (value * 1.79549) / 2.53405;
            Console.WriteLine(Math.Round(dollarsToGBP, 2));
        }
        if (inputCurrency == "BGN" && outputCurrency == "USD")
        {
            var levaToUSD = (value * 1.0) / 1.79549;
            Console.WriteLine(Math.Round(levaToUSD, 2));
        }
        if (inputCurrency == "BGN" && outputCurrency == "EUR")
        {
            var levaToEUR = (value * 1.0) / 1.95583;
            Console.WriteLine(Math.Round(levaToEUR, 2));
        }
        if (inputCurrency == "BGN" && outputCurrency == "GBP")
        {
            var levaToGBP = (value * 1.0) / 2.53405;
            Console.WriteLine(Math.Round(levaToGBP, 2));
        }
        if (inputCurrency == "EUR" && outputCurrency == "BGN")
        {
            var euroToBGN = (value * 1.95583) / 1.0;
            Console.WriteLine(Math.Round(euroToBGN, 2));
        }
        if (inputCurrency == "EUR" && outputCurrency == "USD")
        {
            var euroToDollars = (value * 1.95583) / 1.79549;
            Console.WriteLine(Math.Round(euroToDollars, 2));
        }
        if (inputCurrency == "EUR" && outputCurrency == "GBP")
        {
            var euroToGBP = (value * 1.95583) / 2.53405;
            Console.WriteLine(Math.Round(euroToGBP, 2));
        }
        if (inputCurrency == "GBP" && outputCurrency == "BGN")
        {
            var GBPtoBGN = (value * 2.53405) / 1.0;
            Console.WriteLine(Math.Round(GBPtoBGN, 2));
        }
        if (inputCurrency == "GBP" && outputCurrency == "USD")
        {
            var GBPtoUSD = (value * 2.53405) / 1.79549;
            Console.WriteLine(Math.Round(GBPtoUSD, 2));
        }
        if (inputCurrency == "GBP" && outputCurrency == "EUR")
        {
            var GBPtoEUR = (value * 2.53405) / 1.95583;
            Console.WriteLine(Math.Round(GBPtoEUR, 2));
        }
    }
}
 var num = double.Parse(Console.ReadLine());
            var inc = Console.ReadLine();
            var outc = Console.ReadLine();
            var sum = 0.0;
            if (inc == "BGN" && outc == "EUR")
            {
                sum = num / 1.95583;
                Console.WriteLine(Math.Round(sum, 2) + " EUR");
            }
            else if (inc == "BGN" && outc == "USD")
            {
                sum = num / 1.79549;
                Console.WriteLine(Math.Round(sum, 2) + " USD");
            }
            else if (inc == "BGN" && outc == "GBP")
            {
                sum = num / 2.53403;
                Console.WriteLine(Math.Round(sum, 2) + "GBP");
            }
            if (inc == "USD" && outc == "BGN")
            {
                sum = num * 1.79549;
                Console.WriteLine(Math.Round(sum, 2) + " BGN");
            }
            else if (inc == "USD" && outc == "EUR")
            {
                sum = (num * 1.79549) / 1.95583;
                Console.WriteLine(Math.Round(sum, 2) + " EUR");
            }
            else if (inc == "USD" && outc == "GBP")
            {
                sum = (num * 1.79549) / 2.53403;
                Console.WriteLine(Math.Round(sum, 2) + " GBP");
            }
            if (inc == "EUR" && outc == "BGN")
            {
                sum = num * 1.95583;
                Console.WriteLine(Math.Round(sum, 2) + " BGN");
            }
            else if (inc == "EUR" && outc == "USD")
            {
                sum = (num * 1.95583) / 1.79549;
                Console.WriteLine(Math.Round(sum, 2) + " USD");
            }
            else if (inc == "EUR" && outc == "GBP")
            {
                sum = (num * 1.95583) / 2.53403;
                Console.WriteLine(Math.Round(sum, 2) + " GBP");
            }
            if (inc == "GBP" && outc == "BGN")
            {
                sum = num * 2.53403;
                Console.WriteLine(Math.Round(sum, 2) + " BGN");
            }
            else if (inc == "GBP" && outc == "USD")
            {
                sum = (num * 2.53403) / 1.79549;
                Console.WriteLine(Math.Round(sum, 2) + " USD");
            }
            else if (inc == "GBP" && outc == "EUR")
            {
                sum = (num * 2.53403) / 1.95583;
                Console.WriteLine(Math.Round(sum, 2) + " EUR");
            }
Това е моето решение без да ползвам цикли
Ето и едно по кратко решение на задачата, което не ви съветвам да го правите, а просто да го видите...
var dataCurrency = new Dictionary<string, decimal>()
            {
                { "BGN", 1 },
                { "USD", 1.79549m},
                { "EUR", 1.95583m},
                { "GBP", 2.53405m}
            };
         
            Console.WriteLine($"{decimal.Parse(Console.ReadLine()) * (dataCurrency[Console.ReadLine()] / dataCurrency[Console.ReadLine()]):f2}");
в judje минава 100/100
Много добро решение! Аз го направих с switch case, не бях се сетила за dictionary. 
Задачата е от курса Programming Basics with C#, тема- прости пресмятания.