Софтуерно Инженерство
Loading...
DanielGM avatar DanielGM 2 Точки

Здравейте! Аз също искам да попитам за тази задача, не си виждам грешката, която е на последния тест, получавам само 83/100. Ето го и решението ми: https://pastebin.com/Vk3WPbTJ

0
alextr avatar alextr 59 Точки

По принцип няма нужда от тази булева променлива, но и с нея може да проработи. Тъй като операторът break излиза само от най-вътрешния цикъл, ще имаш нужада и от още един break, за да излезеш и от външния. Тъй като не знам какви са входните данни на теста, който гърми и няма как да го пусна през de-bugger, предполагам че се получава ситуация, при която булевата ти променлива не си сменя стойността от false на true, тъй като програмата не излиза от външния цикъл при изпълнение на условието (sum >= magicNumber). Поправих я така и минава със 100/100: https://pastebin.com/wRkkECdu

0
DanielGM avatar DanielGM 2 Точки

Благодарности!

0
athristov avatar athristov 29 Точки

Ето и моя код. 

https://pastebin.com/NrtmVNNp

0
ognyan.penkov avatar ognyan.penkov 48 Точки

Аз пък съм ползвал булевата променлива и за ди ми прекъсва външният цикъл ето така:

bool isMagicNumber = false;

for (int i = a; i >= 1; i--)
            {
                for (int j = 1; j <= b; j++)
                {
                    if (sum >= magicNumber)
                    {
                        isMagicNumber = true;
                        break;
                    }

                    totalCombinations++;
                    sum += 3 * (i * j);
                }

                if (isMagicNumber)
                {
                    break;
                }
            }

0
31/05/2017 11:58:40
plamensio_1991 avatar plamensio_1991 2 Точки

Ето моето решение. Няма толкова много проверки и е малко по-кратко. Дава 100/100 в Judge. https://pastebin.com/1ifEVm6A

0