Loading...
Filkolev avatar Filkolev 4482 Точки

Ако си зациклил може да погледнеш как го правят лекторите в някое от видеата от март - тази задача (ако става дума за същата) я решават там. Секцията е "Подготовка за изпит".

Иначе има два варианта, които съм пробвал и работят. Ще опиша накратко логиката.

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

2) С битови операции (както си трябва). Имаш две числа, вход и резултат. В цикъл, хващаш входното число, взимаш последния бит и го добавяш към резултата, като резултата го изместваш предварително веднъж наляво. След това входа го местиш веднъж надясно, за да вземеш следващия бит и цикълът се завърта наново. Цикълът трябва да спре, когато входното число стане 0.

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

2
mihayloff14 avatar mihayloff14 824 Точки

Относно втория ти вариант ще го представя с код (ако това имаш в предвид):

int numberToReverse = 160;
int reversedNumber = 0;

while (numberToReverse > 0)
{
    int extractedBit = numberToReverse & 1;
    reversedNumber = reversedNumber << 1;
    reversedNumber = reversedNumber | extractedBit;
    numberToReverse = numberToReverse >> 1;
}


Console.WriteLine(reversedNumber);

numberToReverse съдържа стойността на числото, което искаш да "обърнеш".

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