Loading...
milkokochev avatar milkokochev 10 Точки

[Homework] C# Basics - Primitive Data Types and Variables - Problem {19}** - Bits Inverter

Търсих във форума, но не открих постове за тази задача.

В главата ми се въртят няколко варианта за решаването и, но за съжаление познанията ми не стигат за да ги рализирам :)

Ще споделите ли вашите опити?

Тагове:
2
Programming Basics 07/11/2014 18:37:57
fricer avatar fricer 23 Точки

И на мен битовите операции не са ми силната страна, затова я направих със string. Цък smile

1
a.angelov avatar a.angelov 1316 Точки

Здравейте,

ето моето решение на задачата, надявам се да ви помогне:

Problem 19. BitsInverter

0
mihayloff14 avatar mihayloff14 824 Точки

Здравейте,

Ето ТУК съм постнал решенията си на Exam problems от домашното. Решенията имат и коментари, в които обяснявам какво точно правя, за да е по-ясно. 

Надявам се да ви е полезно. smile

0
milkokochev avatar milkokochev 10 Точки

много благодаря, доста интересни и различни вариации :)

0
petbaik avatar petbaik 15 Точки

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

Линк към кода - Цък

0
Filkolev avatar Filkolev 4482 Точки

Не съм гледал обстойно (разбирай - да дебъгвам във VS), но ми прави впечатление този ред:

int pos = 8 - (k % 8);

к % 8 ти дава резултат между 0 и 7, т.е. 8 - (к % 8) винаги ще е число между 1 и 8, докато позициите, които те интересуват, предполагам са между 0 и 7. Т.е. вероятен проблем - не може да промениш бита на позиция 0, когато е нужно; друг вероятен проблем - понякога променяш бит, който не трябва (позиция 8).

0
BorisSimeonov avatar BorisSimeonov 26 Точки

Ето го и моето решение на проблема. Операциите се изпълняват доста бързо. С малко преправяне, кода може да се съкрати още.

Решение: Bit Inverter

0
svetlozar_kirkov avatar svetlozar_kirkov 11 Точки

Ето и мой малко груб вариант отпреди месец и нещо: Bits Inverter

0
yankozlatanov avatar yankozlatanov 10 Точки

Здравейте,

Това е което успях да скалъпя по тази задача http://pastebin.com/zDbPezVD , но judge-а ми изкара 80 / 100 , всички тестове без последните 3 ми ги дава ОК.

Моля за някакви предположения защо може да се получава грешен отговор . 

 

0
Kamigawa avatar Kamigawa 750 Точки

Здравей колега,

проблемът на задачата ти е, че при големи стъпки някои числа се прескачат и понеже създадения масив има по подразбиране числа 0, те си остават нула. На 19 ред може да присвояваш веднага след числото стойност в масива (print[i] = number;)и след това от if-a ако влезе то ще си я сменя. Така да 100 точки в джъджа (пробвах).

След като това е казано - имай в предвид, че задачата може да се реши по-лесно и без масиви. Може числото да се принтира на конзолата веднага след като е манимулирано - ако има нужда, ако не да се принтира началното число и пак ще работи за 100 точки в джъджа. Също така може да ползваш една променлива index % 7, което да ти дава текущата позиция в числото. И не на полседно място - опитай се да ползвай малко по-разбираеми имена на променливи (съвет) - ще направи четенето на кода от други много по-лесно, например променливата "а" , която я има не дава никаква информация за това каква е функцията й.

Надявам се съм бил от полза и успех!

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