Loading...
simeon.georgiev avatar simeon.georgiev 62 Точки

[Exam Problems] C# Basics - Problem{4} - Magic Car Numbers

Ето линк към изпита, на който е дадена, тя е 4-та, и моето решение. Въртях, суках, но не става. Моля, ако някой може да ми даде съвет как да я оправя, за да проработи laughing Edit: реално от смисъла с char-ове няма смисъл, както и да е...

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

Ето едно от решениета ми тук. Дано ти помогне.

Не съм резглеждал подробно решението ти, но е много вероятно да грешиш нещо в случаите за i!=j. 

2
dentia avatar dentia 362 Точки

Здравей Симеон,

Ето как го бях мислила аз.:

1.правиш си един масив с всички 10 стойности (10,20,30,50,80...)

2.после правиш един масив от 100 елемента, където ще съхвраняваш всички стойности на последните 2 букви, който пълниш с 2 вложени цикъла, в които обхождаш първия масив и събираш стойностите + 40 (защото номерът винаги започва със СА).

3.Започваш да обхождаш големия масив от стойности, като за всяка стойност въртиш 2 вложени цикъла от 0 до 9, защото реално в магическите номера има само комбинации от a/b (aaaa, aaab, abbb, aabb, ababa, abba). Ако приемем, че итераторите на 2та цикъла са кръстени a и b, то тогава следва да направиш 4 проверки - ако а и b съвпадат и 4*а + стойността от масива с комбинации съвпада с магическото число; ако 3*а +b + стойността съвпада; ако 3*b+а+стойността съвпада и ако 2*а+2*b+стойността съвпада с магическото число. Не забравя, че в случая 2а+2b увеличаваш каунтъра с 3, защото има 3 комбинации.

Успех!

5
simeon.georgiev avatar simeon.georgiev 62 Точки

Благодаря за отговорите! За жалост все още не мога да си отговоря на въпроса защо решението на колегата dim4o работи, а моето не, при положение, че са сходни като структура... Ето още един линк към решението ми на задачата Fit Box in Box ( изпит , 1-ва задача) : решение . Мисля, че правя еднотипна грешка и при двете задачи - винаги ми излизат еднаквите стойности (например, при задачата с кутиите ми излизат само решения от типа 4,4,4 < 16,16,16, в момента, в който кажа, че 4 и 16 могат да се срещат само веднъж- и решенията ми стават нула). Може ли някой да даде съвет?

0
dim4o avatar dim4o 288 Точки

1. Когато разглеждаш sumOfLetters защо правиш условие i!=j ? По принцип буквите в края могат да са еднакви. Това не противоречи на условието

2. sumOfNumbers[i] + sumOfLetters[j] + 30 == magicWeight не дрябва ли да е:  sumOfNumbers[i] + sumOfLetters[j] + 40 == magicWeight. Нали CA = 40.

3. int resultOfPairs = (2 * i) + (2 * j)sumOfNumbers.Add(resultOfPairs); --> това не трябва ли да е вътре в условието i!=j ? В такъв случай трябва да се добави към листа 3 пъти.

Имаш една променлива int four = 4 * i;, която не използваш.

2
simeon.georgiev avatar simeon.georgiev 62 Точки

Ок, това оправи нещата, благодаря.

0
dim4o avatar dim4o 288 Точки

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

1
valcho62 avatar valcho62 178 Точки

Колеги,

Моята програма  http://pastebin.com/KKke11s4 изкарва повече номера от примерите . Още първия пример с тежест 555 се дава изход CA8999XX, CA9998XX, а моята програма изкарва още 2  - CA9899XX, CA9989XX, което ми се струва правилно.

Във втория пример с тежест 512 веднага виждам че липсва номер CA6899TX и CA8699TX. Разгледах и решението на този пуснал теста . Той изследва около 500 комбинации от 4-те числа, а аз всичките 10000 .

Та последно кое е вярното ? Гледам в Judge  доста хора са изкарали 100, значи грешката е в мен ,ама къде бъркам .

0
30/12/2015 12:19:18
RoYaL avatar RoYaL Trainer 6849 Точки

Да, защото не ти трябват всички комбинации. В условието пише на кой шаблон трябва да отговарят (например aabb, abab и т.н.)

0
valcho62 avatar valcho62 178 Точки

Мерси много .Кой да чете условието ;-) . Сега стана !

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