Задача 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 се препълва.