C# Basics May Homework 5 - Bits Killer (Problem 17)
Здравейте,
Опитах да реша последната задача от 5-тото домашно; това е реално задача 5 от C# Basics Practical Exam (14 April 2014 Morning).
Имам време да я мъча, но ми е интересно какво точно не е наред с решението, което опитах днес.
Стори ми се сложно да решавам задачата с битови операции и реших да позлвам string.
Какво реално правя: 1) вземам числата, които подава системата; 2) обръщам ги в двоична система и добавям нули отляво, за да направя дължината на стринга 8; 3) добавям всяко така стрингосано число към един голям стринг, накрая този стринг ще съдържа всички входни байтове в двоична система и най-много ще има 800 символа (до 100 байта по 8 цифри); 4) минавам през всеки елемент от стринга и го добавям към нов стринг (резултатът), като просто пропускам тези символи/битове, които трябва да "убием"; 5) ако дължината на новия стринг не се дели на 8, добавям необходимия брой нули отдясно; 6) разделям стринга на части с дължина 8 символа, обръщам ги в числа и ги печатам на конзолата.
Алгоритъмът работи с дадените в задачата примери, но в Judge ми дава 3 грешни отговора (81/100) и зациклих в опитите си да разбера къде точно бъркам. Нужна ми е друга гледна точка; ще съм благодарен ако може да помогнете.
Защото не убиваш само един бит 11111111, а всички след него със стъпка 1. И така удебелените единици си заминават 11111111 и се добавя 7 нули 10000000, което е точно 128.