Професионална програма
Loading...
+ Нов въпрос
krasizorbov avatar krasizorbov 245 Точки

Ето с малка преработка:

function bitcoinMining(minedGold) {

  let boughtBitcoin = 0;

  let days = 0;

  let money = 0;

  let firstDay = 0;

  for (let i = 0; i < minedGold.length; i++) {

    days++;

    let gold = minedGold[i];

    if (days % 3 === 0) {

      money += (gold - gold * 0.3) * 67.51;

    } else {

      money += gold * 67.51;

    }

// Този ред по-долу го слагаш в иф условието горе!

// money += Number((gold * 67.51).toFixed(2));
    while (money >= 11949.16) {

      if (firstDay === 0) {

        firstDay = days;

      }

      money -= 11949.16;

      boughtBitcoin++;

    }

  }

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

  if (boughtBitcoin >= 1) {

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

  }

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

}

0
23/05/2020 23:41:01
AlexanderF avatar AlexanderF 2 Точки

Благодаря, работи, но може ли да обясниш защо работи с твоята преработка ?

0
krasizorbov avatar krasizorbov 245 Точки

Ами нали в условието е казано че някой краде всеки 3-ти ден, тоест всеки 3-ти ден махаме 30% а в останалите дни не махаме. Затова в else калкулираме това което е било извлечено за деня. Ако е 3-ти ден минус 30% ако не не махаме.

0
MartinBG avatar MartinBG 2694 Точки

Закръглянето по условие се прави само при извеждането на крайния резултат.

Променете ред №12 от:

 money += Number((gold * 67.51).toFixed(2));

на:

money += gold * 67.51;

 

0
krasizorbov avatar krasizorbov 245 Точки

Определено трябва да е накрая.

0
AlexanderF avatar AlexanderF 2 Точки

Да това оправя нещата. Най-вероятно закръглянето обърква сметките.

1