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
dimitarnik avatar dimitarnik 93 Точки

Когато намериш, че една цифра се повтаря просто я смени с някакъв друг символ, за да не го теста пак.

 

2
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

По принцип си го мислих този вариан, но имам чувството, че съм напраил голяма хамалогия с тоя код и че съм го осукал много. Утре на свежа глава ще видя за какво става въпрос. Иначе аз мислех един нов масив да направя където да вкарвам повтарящите се и оттам натам ....ала бала. Мерси за идеята все пак :)(Цикля над побитовите операции в момента - че нали така съветват, ако зациклиш на някоя задача, хвашай друга и почвай да циклиш на нея ;))

2
dimitarnik avatar dimitarnik 93 Точки

Като спомена побитово се сетих, че някъде бях гледал решение на тази задача BullsandCows и там след като намерят цифрата, че я има я сoрват сама с себе си и то този начин я променят. Общо вето същата идея. Нали като сорнеш едно число с себе си дава 0. Не знам, не съм голям специалист, честно казано много ме измъчи тази задача. Те като цяло на изпита задачите имат огромна разлика с тези от домашните, може би повече практика би подобрила знанията ми.

Успех и поздрави!

 


 

SoftUniOnlineStudents

2
lostm1nd avatar lostm1nd 121 Точки

Не знам дали си видял, но при проверката за кравите, във вътрешния цикъл проверяваш двата масива с един и същ индекс. Предполагам, че това ще да разреши проблема cool

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