Loading...
Iamnikkysiderov avatar Iamnikkysiderov 15 Точки

Лек проблем с 12-та задача - Currency Converter

Значи, дава ми 60 от 100 точки в judge системата и аз мисля, че е защото някъде (най-вече имам съмнения при този ред: sum = sum * 0.5112918811962185;) съм объркал при числата след десетичната запетая. Ако може да ми помогнете, макар че смятам, че задачата е вярна, просто съм заменил някое число с друго и на judge не му харесва, че не е точното число, което иска да е. Все пак може и другаде да е грешката, затова ви питам ако я намирате.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _13.CurrencyConverter
{
    class Program
    {
        static void Main(string[] args)
        {
            double sum = double.Parse(Console.ReadLine());
            string inputCurrency = Console.ReadLine();
            string outputCurrency = Console.ReadLine();
            string USD = "USD";
            string EUR = "EUR";
            string GBP = "GBP";
            string BGN = "BGN";

            if (inputCurrency == USD)
            {
                double USDsum = sum;
                Console.WriteLine("{0} {1}", USDsum, USD);
                if (outputCurrency == EUR)
                {
                    sum = sum * 1.7959 / 1.95583;
                    Console.WriteLine("{0} {1}", Math.Round(sum, 2), EUR);
                }
            }

            if (inputCurrency == EUR)
            {
                double EURsum = sum;
                Console.WriteLine("{0} {1}", EURsum, EUR);
                if (outputCurrency == GBP)
                {
                    sum = sum * 1.95583 / 2.53405;
                    Console.WriteLine("{0} {1}", Math.Round(sum, 2), GBP);
                }
            }

            if (inputCurrency == BGN)
            {
                Console.WriteLine("{0} {1}", sum, BGN);
                if (outputCurrency == EUR)
                {
                    sum = sum * 0.5112918811962185;
                    Console.WriteLine("{0} {1}", Math.Round(sum, 2), EUR);
                }
            }

            if (inputCurrency == USD)
            {
                double USDsum = sum;
                if (outputCurrency == BGN)
                {
                    sum = USDsum * 1.79549;
                    Console.WriteLine("{0} {1}", Math.Round(sum, 2), BGN);
                }
            }
        }
    }
}
 

Тагове:
0
Programming Basics
dmaknev avatar dmaknev 49 Точки

Добре де, ти имаш 4 валути, мислиш ли че между 4 валути има само 4 варианта за обмен? Защото ти си задал точно толкова... И ми е много интересно на какъв принцип си решил коя да е изходната? Пак добре че си уцлил повече тестове, понеже според мен задачата ти е решена само за 33 точки, не за 60 ;)

Всяка с всяка ще е 4*3=12, което ще изглежда така:

            //Курс: USD = 1.79549 BGN ; EUR = 1.95583 ; GBP = 2.53405

            var stojnost = double.Parse(Console.ReadLine());
            string whodwal = Console.ReadLine();
            string izhwal = Console.ReadLine();
                        
            if (whodwal == "USD") stojnost = stojnost * 1.79549;
            else if (whodwal == "EUR") stojnost = stojnost * 1.95583;
            else if (whodwal == "GBP") stojnost = stojnost * 2.53405;

            if (izhwal == "USD") stojnost = stojnost / 1.79549;
            else if (izhwal == "EUR") stojnost = stojnost / 1.95583;
            else if (izhwal == "GBP") stojnost = stojnost / 2.53405;

            Console.WriteLine(Math.Round(stojnost, 2));

0
Iamnikkysiderov avatar Iamnikkysiderov 15 Точки

Оле :D :D Прав си. Изходната я настройх според примерите на тази задача на втората лекция... Прав си няма как да има само 4 варианта на обмен. Все пак мерси, че ме светна, ще трябва повече да се замислям преди да тръгна да пиша...

1
KonstantinLupov avatar KonstantinLupov 34 Точки

Съвет - При работа с валути, винаги използвай decimal.

0
pebodi avatar pebodi 29 Точки

Това дълго число - 0.5112918811962185; не ми е ясно от къде се е получило. Тук е моето решение - http://pastebin.com/ufQdZR7V 

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.