Loading...
quickben avatar quickben 966 Точки

[Exam] C# Basics - 25.07.2014 - въпроси, мнения, задачи

Честито на колегите които са си постигнали целта, на останалите - "ще се видим на поправката", че и аз не постигнах резултата в който се целих и смятам да се явя на поправката да си постигна "таргета".

Също така предлагам всякакви въпроси/мнения относно изпита да се помещават в тази тема за да не спамим излишно форума.

На печелившите честито на останалите Наздраве! :)

Тагове:
7
Programming Basics
dim4o avatar dim4o 288 Точки

Ето и моите решения на вечерните задачи от 25-ти. Отнеха ми около 2:40h общо. Впечатленията ми са, че задачи 1,3 и 5 са по-лесни от тези на сутрешния (5-та я направих за 26 мин), а задачи 2 и 4 са по-трудни (там циклих по около 45 мин)

1. Electricity

2. OddAndEvenJumps

3. HouseWithWindow

4. NakovsMatching

5. ChangeEvenBits

0
Filkolev avatar Filkolev 4482 Точки

Здравей Димчо,

Малко улеснение при ползването на метода Substring() - ако му подадеш едно число, той ще вземе всички символи от този индекс до края на низа.

Т.е. може да кажеш ето това: string aRight = aWord.Substring(i);

вместо това: string aRight = aWord.Substring(i, aWord.Length - i);

1
dim4o avatar dim4o 288 Точки

Благодаря! Ще го имам впредвид занапред.

 

0
Filkolev avatar Filkolev 4482 Точки

Хрумнаха ми днес две идеи как да си оптимизирам малко решението на 4-та задача от сутрешния изпит (Morse Code Numbers).

Ето линк към решението: ЦЪК.

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

  • към всяко число накрая добавям "|" още в масива, защото така или иначе след всяко число трябва да сложим чертата; в предното решение слагах ръчно чертите след всяко число чак при принтирането, а така си спестявам това усилие. Ето как изглежда масивът:

string[] morseCode = {".----|", "..---|", "...--|", "....-|", ".....|" };

  • махам 0-та от масива и от цикъла. Условието казва, че позволените числа са между 1000 и 9999, което значи, че сумата на цифрите им никога няма да е 0, т.е. в нашето произведение не искаме да има нито една нула. Затова вложените цикли са от 1 до 5 включително (а не от 0 до 5). Накрая при принтирането на резултатите просто достъпвам нужния низ от масива като изваждам 1, тъй като 0 в масива няма и 1-цата вече е с индекс 0 и т.н.
  • преди бях сложил брояч на резултатите, което е излишно разбира се, смених с булева променлива, което е много по-логично.

Промените не са значителни, но е една идея по-добре според мен 6-те вложени цикъла да се въртят по 5 пъти вместо по 6. 

0
slavek avatar slavek 51 Точки

Ето как аз го направих със Dictionary. 

цък

0
quickben avatar quickben 966 Точки

Колеги някой решил ли е Change Even Bits със "стрингосване", че ми дава 10 точки, работи с два от примерите и тука от 2 часа се мъча :)

0
boyanov avatar boyanov 65 Точки

Ето едно решение. Със стрингове изглежда по-лесна, но битовото решение не създава толкова проблеми :)

1
17/08/2014 13:36:19
quickben avatar quickben 966 Точки
Мерси много, грешката ми беше там, че махах излишните нули в началото, вместо да ползвам Reverse както видях от теб, сега ми дава 100/100 :) https://github.com/benadaephondelat/sourceCode/blob/master/ChangeEvenBits
0
17/08/2014 14:13:46
boyanov avatar boyanov 65 Точки

До колкото си спомням без BigInteger дава 60 точки, затова най-добре си пиши кода така че да не гърми като го използваш.

Edit: Въпреки че сега като се замисля сигурно става така, защото кода ми е хлабав :\

1
17/08/2014 13:50:31
naskoni avatar naskoni 68 Точки

Здравейте, колеги! :)

Относно задачата 05. Change Even Bits:

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

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