[C# Advanced ] 04. Cubic Assault - 30/100 точки.
Колеги, къде греша, че се представям толкова зле...
Ето и кода.
Колеги, къде греша, че се представям толкова зле...
Ето и кода.
if (type == "Green")
{
while (count >= 1000000)
{
dictionary[regionName]["Red"]++;
count -= 1000000;
}
if (dictionary[regionName]["Red"] >= 1000000)
{
while (dictionary[regionName]["Red"] >= 1000000)
{
dictionary[regionName]["Black"]++;
dictionary[regionName]["Red"] -= 1000000;
}
}
dictionary[regionName]["Green"] += count;
}
на това парче код примерно ако Green има вече стойност по голяма от 0 и count e 999999 няма да влезе wile-a и ще адне стойност на Green по голяма от 1000000 след това може да имаш инпут Red и примерно край на програмата, а стойността на Green остава > 1000000
Spherica -> Green -> 666
Spherica -> Green -> 999999
Count em all
пробвай този инпут
Не е така. Ако е под стойността - сработва ето това: dictionary[regionName]["Green"] += count;
да и на следващия инпут Green ако е 999999 не влиза в while и стойноста става 1000000+
Проверката ми е само за цвят (тип), а не за бройката. Обърни внимание на това!
Така, че ВИНАГИ влизаш в dictionary[regionName]["Green"] += count;
Просто преди да стигнеш до тук, count-а се редуцира до под 1000000
Spherica -> Green -> 666
Spherica -> Green -> 999999
Count em all
порбвай този инпут и ще видиш, че получаваш това:
-> Green : 1000665
-> Black : 0
-> Red : 0
а трябва да получиш това:
-> Green : 665
-> Red : 1
-> Black : 0
:) Чак сега стоплих за какво говориш... :)
Наложи се и да сменя int-а с long, и заковах на 100/100.
Много ти благодаря за отделеното време. Така бях зациклил, че нямаше да си видя грешката до нова година... :)
За нищо ;)