[Homework] Programming Basics - Loops - 24**.BitRoller
Здравейте,
Изпитвам малко затруднения със последната задачка от домашното за цикли. Проблема е, че не минава всички тестове (80/100). Разгледах и двете авторски решения в Judge-a, те работят принципно различно: генерира се ново 0 число и се попълва бит по бит. На мен обаче си ми харесва повече моето :) и се чудя кои са случаите, в които дава грешка. Ето го и решението ми: http://pastebin.com/nnkQjMjK
Логиката ми е че когато първия бит (позиция 0) стане последен (позиция 18) се получава изместване на дясно с един бит. Вземам стойността на първия и го слагам последен след изместването. Преди това съм си запазил и стойностите на замразения бит, както и на този от ляво на него. След изместването си връщам стойността на замразения бит, а понеже по правило бита, който е бил от негово дясно вече трябва да е от негово ляво, сетвам левия бит след изместването със стойността на десния преди това.
Явно обаче не работи за 2 от случаите.
Много благодаря, намерих си грешката :) При замразен 0-лев бит копирам стойността му на последно място за всеки roll.