Loading...
alex_kristiyanov avatar alex_kristiyanov 0 Точки

Проблем със задача The Pyramid of King Djoser

Здравейте, колеги. Днес се опитах да реша една задача със звездичка, от домашното Basic Syntax с JavaScript, но така и не мога да си открия грешката. Всички дадени проверки в самото домашно минават успешно. Дебъгнах ги, нещата изглеждат ок, но явно не са, защото Judge ми дава 75 %. Някой може ли да помогне? 

Eто линк към условието. А ето и решението ми.

Тагове:
0
Fundamentals Module
ivoyanev88 avatar ivoyanev88 5 Точки

Не можах да намеря къде е грешката струва ми се, че нещо не е ок в if конструкцията. Ето ти моето решение което минава 100/100 ако успееш да си намериш грешката пиши каква е. https://pastebin.com/XfaNSgqR

0
25/01/2019 19:55:46
alex_kristiyanov avatar alex_kristiyanov 0 Точки

Благодаря, колега. Реших я наново, уж същата логика, но този път получих 100/100. Така и не можах да намеря някаква грешка и съществена разлика в структурата на логиката, но ето, явно има такава, щом Judge дава различна оценка. Изглежда наистина намирането на бъгове/грешки понякога е сериозно предизвикателство. :) 

0
26/01/2019 14:08:32
lubo986 avatar lubo986 0 Точки

Здравей, може ли да попитам , как си намерил периметъра на мрамора ? 
let marbel = currentbase * 4 - 4;
                                          /\

                

 

0
ihalkov avatar ihalkov 2 Точки
let marbel = ((currentbase * 4) - 4) * increment;


// или за marbel и lapis

function findDecorationStone(baseOfPyramid, incrementOfPyramid) {

            let decorationBase = baseOfPyramid;

            let decorationStone = ((4 * decorationBase) - 4) * incrementOfPyramid;

            return decorationStone;

        }

 

0
alekslyondev avatar alekslyondev 1 Точки

Здравейте. Прегледах и двата кода и единствената разлика която виждам е, че в единият код (този от поста) златото се смята в цикъла с вложена проверка: 
if (counter % 5 === 0) {
            outerLayer = (4 * base - 4);
            lapisLazuli += outerLayer;
            stone += (total - outerLayer);
        } else if (base <= 2) {
            gold = total;
        } else {
            outerLayer = 4 * base - 4;
            marble += outerLayer;
            stone += (total - outerLayer);
        }

Докато в другия код, златото се смята извън цикъла и според мен това е грешката, защото реално златната декорация е само на последния ред: 

while (currentbase>2) { условие }
    row++;
    let gold=currentbase*currentbase;

Поправете ме, ако греша! Надявам се да съм бил полезен. Поздрави :) 

P.S. Иначе логиката е вярна и в двата случая. И аз малко се сконфузих, но за мен това е логичното предположение. Бих предположил че е заради декларирането с parseFloat, но няма логика оттам да идва грешката. Въпреки че ми се е случвало на други задачи. 

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