Loading...
AlexanderBeloev avatar AlexanderBeloev 70 Точки

15ти Проблем от 3то домашно - Решение до тук + въпрос.

Здравейте,

 

Исках да споделя обяснение на 15та задача. Написал съм малко по-подробно нещата за да може да е максимално разбираемо:

 

LINK

 

Исках да попитам следното. Понеже говорих с Наков относно задачата и той каза, че е по добре да се вземат трите стойности наведнъж и да се заместят. Дали някой знае как става? Array?

 

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

 

Благодаря ви предварително!

 

P.S. - Пускам го в нова тема защото само така ще могат да го видят повече хора. Това е естеството на форумите. Който е бил в мега форуми като WarriorForum и подобни знае, че организацията е единствено и само по категории.

Тагове:
6
Programming Basics
milen8204 avatar milen8204 296 Точки

Ето и моето решение използвал съм масиви, като превъртя стринговете в масив и заменя членовете 24, 25 и 26 с 3, 4 и 5 и използвам 3 временни променливи за размяната. Малко чийтърско ама нищо не ми дойде на акъла иначе работи.

П.С. Но, като разгледах вашите решения са по - хитри. :)

1
AlexanderBeloev avatar AlexanderBeloev 70 Точки

Здрасти Милен,

 

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

 

Ето линк към него:

 

LINK

 

Поздрави от от мен cool

1
milen8204 avatar milen8204 296 Точки

Да AlexanderBeloev благодаря ти много.

Иснитаната е, че вашите решения са по-добри затоа днес се мъчих да реша 16-та задача по логиката, която вие сте следвали. И в крайна сметка успях, копнах решението на kiko144  и си го модифицирах за решението на 16 задача, не казвам, че е добро ама работи.

Успех от мен.

1
dim4o avatar dim4o 288 Точки

Здравей !

Харесва ми логиката на решението ти, на зад 16, но мисля, че можеш да го изчистиш още малко :)

Не съм убеден, че това работи коректно за всички случаи: else if ((numberQ - numberK) < (numberP + numberK)). Това е равносилно на numberQ - numberP < 2*numberK, което не го разбирам. Не вярвам да работи винаги коректно. Аз използвам |numberP - numberQ| <  numberK. (става въпрос за покриването на случая за overlapping)

Този номер със стринговете и цикъла, който правиш: strMask = strMask + "1"; според мен може да го спестиш просто с реда uint unit = (1u << numberK) - 1;. Нали се търси число от вида 11111..., така k пъти. Това всъщност е числото 2^k - 1, а 2^k e 1000..., което е: 1<<k. Ето и моето решение на зад 16.

1
milen8204 avatar milen8204 296 Точки

Съжалявам ама не знам какво е unit = (1u << numberK) - 1 ; по сокоро (1u), аз съм начинаещ и тези съкращения не ги разбирам, така че не знам сигурно си прав. :) за оверлапинга си прав, рябва само да е number Q - NuberP - numbnerK, при мен няма нужда от модул защото numberQ е винаги по - голямо от numberP поради проверката в началото на кода :) Благодаря за отговора.

0
dim4o avatar dim4o 288 Точки

С "1u" означавам единица от тип uint, а unit се е просто променлива (малко объркващо име). Логиката на решението ми налагаше да запиша единицата така. Иначе може и само 1. Просто имах впредвид, че (11111111...)2 = 2k-1 + 2k-2 + ... + 1 = 2k -1 - 1= (100000...)2 - 1 = (1 << k) - 1. 

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