Do/While || For- разлики във времето за компилиране в judge, Lesson 11 - Loops, Problem 10 - Odd/Even Sum

Здравейте,

Споделям челен опит (като от челен удар) при използване на for при решението на тази задача.


Ето и малко подробности:


ЛИНК към условията на зададачите (взимамеза пример задача 10 - Odd Even Sum);

ЛИНК към решението на задачата с използване на цикъл чрез for;

ЛИНК към решението на задачата с използване на цикъл чрез do/while.

 

Факт е, че кодът в къдравите скоби(между { и } ), който се изпълнява n пъти  е абсолютно еднакъв.

Факт е, че реално броят операции и в двата случая е еднакъв.

Най-интересният факт  обаче е, че judge дава 100 точки при използване на do/while и цели 12 точки при използване на for. За един и същ код, за едни и същи операции и за еднакви крайни резултати.

"Гърми" заради прекалено много време за компилиране - 0.015 s на тест при do/while и 0.315 s при for или цели 21 пъти по-бавно.

Потърсих отговор при чичко Google за разлики между двата варианта за създаване на цикъл, но отговорите не са категорични и еднозначни.

Единият от тях е, че при еднакъв код, този с по-малко на брой символие по-бърз. Очевадно е невярно твърдение, защото в нашия случай при по-бързия (do/while) имаме 676 символа, а при по-бавния (for) - 604.

Друга теория е, че зависи изцяло от компилатора. Възможно е и да е така, но няма как да бъда сигурен при положение, че във всички останали случаи не съм имялникакви проблеми с for в judge.

Ще помоля за съдействие за да открием моята грешка (ако има такава) или причината това да се случва.

Иначе е много кофти усещането да видиш 12 точки при "правилно решение", което си изградилв главата си и да почнеш да търсиш грешката навсякъде. 

Благодаря.