Loading...
evittlyemov avatar evittlyemov 4 Точки

Здрасти,

Тази задача има доста проверки в Judge-а, не са само метър към друга мерна единица. Има проверки и между мерни единици различни от метър, т.е. ще се наложи да се опишат всички комбинации. Доколкото разбирам идеята е да се упражни if-else-if-else, така че аз така съм я написал, но 100% има по-добър начин с други команди :).

Друго нещо, на което искам да обърна внимание е изхода, има тест миля към милиметър и отговора е със 7 знака след десетичната запея, не знам как е в c#, но в Java има възможност да му зададеш до колко цифри след нея да изписва, проблема тук е, че ако отговора е зададен с по-малко ще даде число с "E"-та (1.0460736003995499E7) и Judge-а ще ти даде грешен отговор :(.

Успех!

0
evittlyemov avatar evittlyemov 4 Точки

Извинявам се, лека поправка за цифрите след десетичната запея. Не по-малко, а повече, т.е. трябва да го ограничиш до 7 знака, примерно.

0
Simeon22 avatar Simeon22 12 Точки

Благодаря за идеите!

0
Terziyski avatar Terziyski 54 Точки

Здравей, като допълнение може да разгледаш в интернет и за метода Dictionary. С него нещата стават много по-лесно. Но тук идеята е да се използва може би или " If" или " switch-case".

Успех!

 

0
desi77slava avatar desi77slava 3 Точки

Здравейте, да попитам и аз за същата задачка, значи реших да си преобразувам входящата в метри и после според това, което се търси от потребител да преубразувам в тая мерна единица която търси...написах си го гледам си го викам си тука 100 от 100...ама не 0 от 100...проверих вход - изход бе нещо числото същото ма почва с 0.000 ето и какво съм написала

            double number = double.Parse(Console.ReadLine());
            string inUnit = (Console.ReadLine());
            string outUnit = (Console.ReadLine());
            double resultMeter = 0;
            
            if (inUnit == "m")
            {
                resultMeter = number;
            }
            else if (inUnit == "mm")
            {
                resultMeter = number * 1000;
            }
            else  if (inUnit == "cm")
            {
                resultMeter = number * 100;
            }
            else if (inUnit == "mi")
            {
                resultMeter = number * 0.000621371192;
            }
            else if (inUnit == "in")
            {
                resultMeter = number * 39.3700787;
            }
            else if (inUnit == "km")
            {
                resultMeter = number * 0.001;
            }
            else if (inUnit == "ft")
            {
                resultMeter = number * 3.2808399;
            }
            else if (inUnit == "yd")
            {
                resultMeter = number * 1.0936133;
            }

            double resultoutUnit = 0;

            if (outUnit == "m")
            {
                resultoutUnit = resultMeter;
            }
            else if (outUnit == "mm")
            {
                resultoutUnit = resultMeter / 1000;
            }
            else if (outUnit == "cm")
            {
                resultoutUnit = resultMeter / 100;
            }
            else if (outUnit == "mi")
            {
                resultoutUnit = resultMeter / 0.000621371192;
            }
            else if (outUnit == "in")
            {
                resultoutUnit = resultMeter / 39.3700787;
            }
            else if (outUnit == "km")
            {
                resultoutUnit = resultMeter / 0.001;
            }
            else if (outUnit == "ft")
            {
                resultoutUnit = resultMeter / 3.2808399;
            }
            else if (outUnit == "yd")
            {
                resultoutUnit = resultMeter / 1.0936133;
            }
            Console.WriteLine("{0:F8}", resultoutUnit);
        }
    }
}
 

0
ToniStoyanov avatar ToniStoyanov 8 Точки

Здравей,

Логиката ти е вярна, но обърната :) за най-лесно може да обърнеш inUnit и outUnit и ще стане. Не съм го тествал в djudge, но изпробвах с няколко мерни единици и изглежда работи.

0
desi77slava avatar desi77slava 3 Точки

Много ти благодаря за помоща...стана :)

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