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

10-та задача, Bitcoin Mining

Здравейте,

Извинявам се за тъпия въпрос, но в джъдж получавам 90 на тази задача и не ми дава да видя инпута и очакваните резултати. Не мога вече да си исмисля сценарий, който да дебъгна, може ли някой да ми каже какво пропускам?

 

function solve(array1){

let array = array1.slice(0,999);

 

let dayCounter= 0;

let totalGold = 0;

let money = 0;

let bitcoins = 0;

let moneyLeft = 0;

let firstCoinDay = 0;

let bool = true;

 

array.forEach(func);

 

function func(gold){

dayCounter=array.indexOf(gold)+1;

 

if(dayCounter%3==0){

gold = gold*0.7;

}

 

totalGold+=gold;

money = totalGold*67.51;

 

if(money>=11949.16 &&bool ==true){

firstCoinDay = dayCounter;

bool = false;

}

 

}

 

bitcoins = Math.floor(money/11949.16);

moneyLeft = (money%11949.16).toFixed(2);

console.log(`Bought bitcoins: ${bitcoins}`);

 

if(bitcoins>0){

console.log(`Day of the first purchased bitcoin: ${firstCoinDay}`);

}

 

console.log(`Left money: ${moneyLeft} lv.`);

}

Тагове:
0
Programming Fundamentals
NikolayNeykov92 avatar NikolayNeykov92 617 Точки

Здравей, проблема ти идва от този ред: 

dayCounter=array.indexOf(gold)+1;

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

Решението е следното втория параметър който има forEach е индекс съответно function func(gold, index) и след това 

dayCounter става така dayCounter = index + 1;  Ето кода ти с тези промени: https://pastebin.com/pWayRAYh

0
29/01/2019 15:41:12
Laniakea avatar Laniakea 0 Точки

Благодаря, @NikolayNeykov92
Нямаше да фейлне, ако бях сложила и обикновен каунтър, но реших все пак да използвам хинтовете в задачата.

@Simo86, за жалост не мога да ги качвам там, понеже съм на работа и домейна е рестриктнат, но благодаря за ентусиазма! Ще внимавам с формата на въпроса следващия път :) 

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