Loading...
malkstor avatar malkstor 348 Точки

[Homework] Programming Basics - Loops - 24**.BitRoller

Здравейте,

Изпитвам малко затруднения със последната задачка от домашното за цикли. Проблема е, че не минава всички тестове (80/100). Разгледах и двете авторски решения в Judge-a, те работят принципно различно: генерира се ново 0 число и се попълва бит по бит. На мен обаче си ми харесва повече моето :) и се чудя кои са случаите, в които дава грешка. Ето го и решението ми: http://pastebin.com/nnkQjMjK

Логиката ми е че когато първия бит (позиция 0) стане последен (позиция 18) се получава изместване на дясно с един бит. Вземам стойността на първия и го слагам последен след изместването. Преди това съм си запазил и стойностите на замразения бит, както и на този от ляво на него. След изместването си връщам стойността на замразения бит, а понеже по правило бита, който е бил от негово дясно вече трябва да е от негово ляво, сетвам левия бит след изместването със стойността на десния преди това.

Явно обаче не работи за 2 от случаите.

0
Programming Basics 08/04/2015 11:32:58
nakov avatar nakov SoftUni Team Trainer 5295 Точки
Best Answer

Ами изтегли си тестовете и виж кой тест ти гърми. След това мини с дебъгера по този тест и намери защо твоят код дава грешен резултат. Някъде на някоя стъпка алгоритъмът ти греши. Най-лесно се намира с постъпково проследяване през дебъгера, когато налееш входните данни, при които гърми.

3
malkstor avatar malkstor 348 Точки

Много благодаря, намерих си грешката :) При замразен 0-лев бит копирам стойността му на последно място за всеки roll.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.