Профил
Loading...
+ Нов въпрос
GoShow avatar GoShow 595 Точки

50++ примерни задачи и техните решения за изпита C# входно ниво.Споделете нови или вашите решения на същите.

Здравейте!Мисля, че ще е много полезна тема.Тук са решенията на доста задачи от изпит минали години в Телерик.Всички решения са мои и резултата им в bgcoder е 100 точки.Естетвено много от решенията са "инспирирани" от други решения, авторски, но доста са изцяло лични, затова и вероятно кода им не е оптимален.Както и да е, отварям тази тема, за да добавяме още и да коментираме.Всички задачи ги има със същите имена в bgcoder. Могат да се упражняват и да бъдат проверени решенията, които съм поставил тук като линкове.Съжалявам че не съм правил коментари в решенията, защото си ги решавах за себе си...сега го отчитам като грешка, но с удоволствие ще коментирам всички задачи с всеки, който има нужда.Успех на всички на изпита!

p.s. всички условия на задачите ги има в bgcoder, а самите задачи могат да бъдат намерени по имената им в търсачката в bgcoder мисля, че всички са абсолютно същите

3-6-9

A-nacci

Astrological Digits

Bat Goiko Tower

Binary Digits Count

Bulls and CowsCard Wars

Cartesian Coordinate System

Coffe Machine

Dancing Bits

Diamond Trolls

Drunken Numbers

Excel Columns

Fall Down

Fighter Attack

Fir Tree

Fire in Matrix

Forest Road

Game Of Page

Garden

Least Majority Multiple

Lines

Math Expression

Miss Cat

Next Date

Odd Number

Pillars

Poker

Quadronacci Rectangle

Sand Glass

Secret of Numbers

Sevenland Numbers

Sheets

Ship Damage

Trapezoid

Tribonacci

Tribonacci Triangle

Tripple Rotation Digits

UK Flag

Warhead

We All Love Bits

X-Expression

 

Na Baba Mi Smetalnika new

Bit Ball new

Neurons new

95
Programming Basics
WhatTheFoxSay avatar WhatTheFoxSay 61 Точки

Много полезно инфо, ама без условията не вършат никаква работа...

0
Plami avatar Plami 373 Точки

Много полезни решения, а условията на задачите ги има в BG Coder. Ako успея да стигна дотам ще ги пробвам :D

0
oconne avatar oconne 113 Точки

Здравей,

много полезна тема. Имам въпрос за задачата с листовете (SHEETS). Написах толкова много код, но като видях твоя на 5 реда...

Разбирам кода ти. Наков беше споменал в една от лекциите, че реални обекти и ситуации можем да представим в бинарни модели. Може ли обяснение? (Представяш типа на листа в бинарен код и след това търсиш позициите на 0-та , от 10 изваждаш нейната текущата позиция  и получаваш ненужният лист или нещо такова. Например:

 1> Въвеждаме А5 т.е 5

 2> в битове до 10,   5 = 00000000101

 3> на 1 на 3,4,5,6,7,8,9,10 имаме нули

 4> от 10 като извадим тези числа получаваме неизползваните листа: 9,7,6,5,4,3,2,1,0

)

1
GoShow avatar GoShow 595 Точки

Да.Точно това е Sheets.Изумително просто решение, за съжаление не е изцяло мое :)

0
Ludmil.D avatar Ludmil.D 41 Точки

Бинаред модел се има предвид в друга задача там се ползва схемата за комбинаториката т.е. 1010 и 1011 и така за всяко число и никога 6 и 7 не могат да имат едни и същи битова т.е. задачата е от комбинаторика... тук спокоийно може да се ползва степента на доиката представена в масив т.е. arr {1,2,4,16,32.... } и докато принтираш/въртив всичко във фор цикъл които проверява стоиностите на масива и има вътрешно условие if arr[i]<= sheet и ако да sheet - arr[i]; и подминаваш без да пирнтираш иначе принтираш примерно i (което забележи хем е прояч за масива хем и казва кой формат не е принтиран) ; )) ако имаш нужда от код мога да помагам

0
oconne avatar oconne 113 Точки

ЕЕ, много жалко! Хубаво ще бъде ако някой разясни тази задача. ГОУШОУ, имаш ли някъде условията на задачите, наистина е безмислено без тях.

1
GoShow avatar GoShow 595 Точки

Написал съм го още в първия пост със задачите :) всички условия ги има в bgcoder влизате в сайта, намирате задачата по заглавието през търсачката и като я намерите сваляте условието във формат word.Наясно съм, че без условия е малко безумно, но всички ги има :)

1
oconne avatar oconne 113 Точки

Людмил.Д, това което казваш вече беше демонстрирано,  особенно от Боян, малко по надулу. Той напълно излезе от бинарният модел, докато Гоушоу се доближи най-силно до него, защото представи АN формата в бин. число точно по изискването на задачата и приложи побитови операции. (а пък решението на Коста е нещо средно). Не мога да не се съглася с теб, че тази задача е много слаба форма на бинарният модел но не го изключва като понятие.(А ако трябва да дефинираме точно понятието не съм в течение). Ти започна нещо много, ама много важно, приложението на тези модели в комбинаториката. Това го разбрах сега напоследък като видях в интернет задачи решени   с побитови операции и един, два цикъла. Ако имаш време предложи някоя друга задача да решаваме! 

2
LenaB avatar LenaB 112 Точки

Много полезно, благодаря!

0
oconne avatar oconne 113 Точки

Да.. точно това правя в момента.  Least Majority Multiple  не ти се показва. Някаква грешка дава. И така..

Много ми е удобно да си сверявам с твойте решения.

 

2
GoShow avatar GoShow 595 Точки

Оправено е, благодаря за корекцията!

0
Kosta avatar Kosta 35 Точки

Като стана въпрос за Sheets, ето и моето авторско решение използвайки string :
http://pastebin.com/fzxYsrDM

4
oconne avatar oconne 113 Точки

Еха, още по минимилистично решение. Направо красота. Макар че и твоето и неговото са напълно еквивалентни като логика.

Коста а може ли да обясниш защо се прави това нещо? 

0
Kosta avatar Kosta 35 Точки

Идеята е много проста, ако се досетиш, че всъщност размерите на листовете могат да се представят като степени на числото 2 - съответно А0 = 210(1024) и А10 = 20(1). По този начин приемаме, че най-малкият ни лист е с размер 1 и всеки следващ е два пъти по-голям от предходния. Ако конвертираме входа от конзолата (който ни казва колко листа с размер А10 искаме да получим) към двоично число, ще видим битовете на кои позиции са единици. Например:
Въвеждаме числото 11
Конвертираме го към двоично (стринг):   000 0000 1011
Индексите на този стринг, в случая, съответстват на различните размери листа. Броим индексите  от ляво на дясно (от 0) и виждаме , че на позиции 7,9,10 имаме единици. Съответно това ни показва , че за да се сдобием с 11 листа А10, са ни нужни един А7(23 = 8), един А9( 21=2) и един А10(20=1).

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

string inputInBinary = Convert.ToString(int.Parse(Console.ReadLine())2).PadLeft(11'0');

PadLeft(11'0') - Това добавя водещи нули към двоичното число, така че да се запълни оставащото до 11 бита. Например ако получим 1011 (от числото 11), добавяме му отпред нули докато стринга стане с размер 11 символа. Нужни са ни 11 бита защото от А0 до А10 са 11 различни размера. След това цикъла е ясен - правим проверка за всяка позиция в стринга и ако тя съдържа '0'(тоест този лист няма да се използва) отпечатваме 'А' + индекса на позицията.

Не съм много добър в обясняването, но се надявам концепцията да е станала малко по-ясна.

6
BoYaN avatar BoYaN 331 Точки

И аз да се включа с едно решение на Sheets.

Колега Kosta,

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

3
oconne avatar oconne 113 Точки

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

2
kiko144 avatar kiko144 795 Точки

Леле .. Браво за решенията колега.. Днес 2 часа се мъча на задачата "Secrets numbers" и се изкарвам най-много 68 точки.. после погледнах твоето решение и осъзнах, че не съм предвидил ако входа е отрицателно число .. Поне на изпита вече ще внимавам и за това ! Благодаря, много ми помогна !

0
GoShow avatar GoShow 595 Точки

Много се радвам, че помагам това е идеята. Така или иначе вече съм бил на такъв изпит и знам горе-долу за какво трябва да се внимава.Затова седнах и да порешавам като хората задачи.Истината е че човек трябва сам да си поблъска главата, но изкараш ли принципно над 60 точки(в повечето случай), започва дебъгване, за отрицателни числа, за по-големи long big integer и т.н. и т.н., но това почти винаги означава,че алготитъма ти е верен.И така, изпитите идват, успех на всички!Апропо, споделяйте различни решения на тези или други задачи, за всички е ще е много полезно да се види различна гледна точка.

3
kiko144 avatar kiko144 795 Точки

Да аз само като отворих задачата ти и видях това и ми светна лампичката, обаче просто преди това бях изключил, че може да има и отрицателни числа.. Иначе даже опитвах с някви 400-цифрови числа ама сичко си излизаше както трябва. Хубавото е че разбрах как да слагаш за инпут повече от 254 символа(конзолата по подразбиране не го позволява) Прави се ето с този код :

Console.SetIn(new StreamReader(Console.OpenStandardInput(8192))) - В случая максималните символи ще са 8192smile

 
0
Plami avatar Plami 373 Точки

http://pastebin.com/72BzZaYF

 

Eто едно мое решение за друга задача от втория вид Angry Female GPS (подобна на Nightmare on Code street, koято за съжаление не виждам тук), само дето в bgcoder ми изкарва 70/100. Ако някой има идея как да го оптимизирам, за да стигна до 100 ще съм много благодарна :)

Ето и въпросната задачa Nightmare on Code street:

http://pastebin.com/nAY64p91

 

0
GoShow avatar GoShow 595 Точки

Мисля, на пръв поглед, че не проверяваш за отрицателни числа.След 2 минути ще съм сигурен дали е това

1
GoShow avatar GoShow 595 Точки

Познах.Добави  след входа и  преди да стрингосаш N :)  100/100

 

if (N < 0)

{

N = -N

}

1
Plami avatar Plami 373 Точки

Благодаря ти много! Друго е да удариш 100-тотака . Усещането е различно :D

0
dimitar_velkov avatar dimitar_velkov 26 Точки

Браво, информацията е изключително полезна.

 

0