Loading...
+ Нов въпрос
sportsman avatar sportsman 137 Точки

[Exam Problems] Java Basics - Sample Exam - Problem {04} Magic Car Numbers - Моля за помощ!

Здравейте,

много се извинявам ако молбата ми е некоректна, но бих помолил някой от екипа на СофтУни,а също и някой студент дори, да реши 4-та задача от Java Sample Contest в judge системата на СофтУни. Мислих много по нея,но не мога да се сетя за решение. Бих бил благодарен на всякаква помощ, дори някакви малки насоки.

Поздрави.

2
Java Advanced
hristolilov avatar hristolilov 394 Точки

Направо ти пускам решението ми от изпита, далеч е от перфектно, но е 100/100 (На C# е, но е елементарно да се метне на Java).

Magic Car Numbers

1
lostm1nd avatar lostm1nd 121 Точки

Ето и едно решение на Java - тук.

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

2
sportsman avatar sportsman 137 Точки

Благодаря колеги.

0
ZvetanIG avatar ZvetanIG 907 Точки

Ето и още едно решение http://pastebin.com/TUrMm6R1

С 6 вложени цикъла, обхождам всички номера.  проверявам, кой е магически номер и ако отговаря на посоченото тегло увеличавам брояча с 1.

Тъй като не ми трябват номерата работя само с теглата на цифрите и буквите.  Това е възможно защото теглата са уникални за всяка цифра и буква.

В метода isMagicNumber(int key1, int key2, int key3, int key4) използвам map, за да мога по-лесно да преброя различните цифри в номера. Ако мапът е с два елемента това означава, че номера е кандидат за магически. Накрая още с един if филтрирам тези, които не отговарят на магическите номера.

 

1
sportsman avatar sportsman 137 Точки

Благодаря.

 

0
kasskata avatar kasskata 492 Точки

Ще се опитам само да те напътя към отговора. имаш СА a a a a X Y X и Y за мен са 2 цикъла. Въртят буквите,които аз съм използвал само един масив от техните стойности. а а а а - са един цикъл от който се нуждаеш от всяка цифра на това число, а именно (int i = 0;i<=9999;i++)

в него взимаш всички цифри да са ти поотделно и ги сумираш + 40 (идва от буквите CA).

int first = k / 1000 % 10;
int second = k / 100 % 10;
int third = k / 10 % 10;
int forth = k % 10;

От там нататък ти е само if-ове като във всеки If имаш един counter който брой колко пъти отговаря числото на темплейтите а те са в задачата - "CAaaaaXY", "CAabbbXY", "CAaaabXY", "CAaabbXY", "CAababXY" and "CAabbaXY"

накрая отпечатваш countera.  и той трябва да е единственото в отговора ти ,без допълнителни знаци.

Успех и Питай ако има проблеми
1
VenIT avatar VenIT 63 Точки

Ето моето решение на Magic Car Numbers , на java. 100/100 

1
StanDimitroff avatar StanDimitroff 90 Точки

Това е моето решение.Обаче не ми дава повече от 90/100.Някой може ли да ми открие грешката, щото аз не я виждам, а на втория събмит пък ми даде 80/100 и таймлимит на същия код :D 

1
georgimanov avatar georgimanov 107 Точки
100/100 в 20 реда (ако не броим излишните) http://pastebin.com/GFpK5EdY ... преди това ми даваше само TimeLimit, но то бяха switch и 2 метода за калкулиране на теглото.
2
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.