Задача 3-6-9 от 6 декември
Здравейте, почнах да решавам тази задача, но в bgcoder получих 70/100 точки. Ето решението ми:
Може ли да ми кажете къде греша или някой да покаже неговото решение за 100 точки
Здравейте, почнах да решавам тази задача, но в bgcoder получих 70/100 точки. Ето решението ми:
Може ли да ми кажете къде греша или някой да покаже неговото решение за 100 точки
Предполагам, че е заради типа данни. Пробвай с лонг.
edit:
Една темичка - вече развита и с доста решения от бгкодера. Ако имаш още въпроси - първо прегледай там. :)
Какви са constraints на задачата?
Ако примерно "a" и "c" могат да бъдат между 0 и 2 млрд, то "r" няма как да е ИНТ, когато попадне в тази клауза:
else if(b == 6)
{
a b и c трябва да са м/у 1 и 999999
Ами значи съм прав?
999 999 * 999 999 > Int32.MaxValue
За да нямаш изненади от сорта на: int връща грешен резултат заради препълване, вместо exception. Moжеш да използваш checked. Например така:
            checked
            {
                int number = 999999;
                number *= number;
                Console.WriteLine(number);
            }
Това ще хвърли exception и ще си сигурен, че грешката е в препълване. Защото представи си, че имаш 20 променливи и 200 реда код, може да не откриеш, че всъщност int се препълва.