Files
freeCodeCamp/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69373793f5a867f769cde13a.md

2.0 KiB

id, title, challengeType, dashedName
id title challengeType dashedName
69373793f5a867f769cde13a Challenge 155: Plant the Crop 28 challenge-155

--description--

Given an integer representing the size of your farm field, and "acres" or "hectares" representing the unit for the size of your farm field, and a type of crop, determine how many plants of that type you can fit in your field.

  • 1 acre equals 4046.86 square meters.
  • 1 hectare equals 10,000 square meters.

Here's a list of crops that will be given as input and how much space a single plant takes:

Crop Space per plant
"corn" 1 square meter
"wheat" 0.1 square meters
"soybeans" 0.5 square meters
"tomatoes" 0.25 square meters
"lettuce" 0.2 square meters

Return the number of plants that fit in the field, rounded down to the nearest whole plant.

--hints--

getNumberOfPlants(1, "acres", "corn") should return 4046.

assert.equal(getNumberOfPlants(1, "acres", "corn"), 4046);

getNumberOfPlants(2, "hectares", "lettuce") should return 100000.

assert.equal(getNumberOfPlants(2, "hectares", "lettuce"), 100000);

getNumberOfPlants(20, "acres", "soybeans") should return 161874.

assert.equal(getNumberOfPlants(20, "acres", "soybeans"), 161874);

getNumberOfPlants(3.75, "hectares", "tomatoes") should return 150000.

assert.equal(getNumberOfPlants(3.75, "hectares", "tomatoes"), 150000);

getNumberOfPlants(16.75, "acres", "tomatoes") should return 271139.

assert.equal(getNumberOfPlants(16.75, "acres", "tomatoes"), 271139);

--seed--

--seed-contents--

function getNumberOfPlants(fieldSize, unit, crop) {

  return fieldSize;
}

--solutions--

function getNumberOfPlants(fieldSize, unit, crop) {
  const cropSpace = {
    corn: 1,
    wheat: 0.1,
    soybeans: 0.5,
    tomatoes: 0.25,
    lettuce: 0.2
  };

  let fieldInSqM = unit === "acres" ? fieldSize * 4046.86 : fieldSize * 10000;

  return Math.floor(fieldInSqM / cropSpace[crop.toLowerCase()]);
}