Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Примерен практически изпит по C# (вариант 1) - решения

Тъй като в момента решавам този примерен тест, който се намира под всички лекции ще постна моите варианти на решение на задачите:

Задача 1 CartesianCoordinateSystem

Задача 2 Tribonacci

Задача 3 SandGlass

Задача 4 BullsAndCows -> тази задача ми дава 56/100 точки в bgcoder.com. В момента се опитвам да добавя още една проверка с цикъл за повтарящи се числа. Ако имате някакви полезни съвети, приемам всичко.

Задача 5 WeAllLoveBits

 

Та като цяло всички задачи дават 100/100 точки в bgcoder(без задача 4, която до утре ще оправя). Това са си лично мои варианти на решения като не съм използвал нито един чужд код(всичко си е моя идея). Давайте съвети и препоръки. Успех на всички

  Ако имате желание давайте и свои имплементации на задачите. Ще се радвам да обмениме опит:)

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

4
Programming Basics
Dekameron avatar Dekameron 481 Точки

Задача 5. WeAllLoveBits 

@dimitarstoyanov90 кодът ти нещо не ми тръгва, но не знам дали е само при мен това?! И не виждам смисъл да се ползват BigIntigers тъй като на обсега на входа е точно като за int :)

Ето това е моето решение на задачата

 

Накратко да обясня.

numbers[] - числата от входа;

result[] - числата от изхода;

1. Тъй като винаги резултата от P^P̃ винаги са единици (11111...), то на нас ни трябва единствено да намерим P̈ (reversed number P), което всъщност е резултата.

2. Давам на result[i]  стойност 0 и почвам да измествам битовете с <<= 1 всеки път когато мине if условието.

3. Битовете в numbers[i] ги измествам с >>= 1 (за да ги зануля накрая) и ги чета от най-десния бит в посока наляво, и всеки път когато (numbers[i] & 1) != 0 (когато резултата от & е 1), в бита на rezult[i] се присвоява 1 (битовете в rezult[i] пък се записват по реда, по който са дошли от numbers[i] т.е rezult[i] числото е обратното на numbers[i] т.е резултата).

 

Дано съм помогнал smile

6
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Има случи, в които при входни данни е необходимо изходните да бъдат BigInteger малко по - късно ще ти дам пример за какво точно става въпрос :) Успех от мен :)

0
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Не ти тръгва, защото може би е неогходимо да направиш референция за System.Numerics(за да може да използваме BigInteger):)(поне предполагам, че това е проблема)

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