Back to Freecodecamp

Challenge 155: Plant the Crop

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

latest1.9 KB
Original Source

--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:

CropSpace 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.

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

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

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

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

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

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

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

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

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

--seed--

--seed-contents--

js
function getNumberOfPlants(fieldSize, unit, crop) {

  return fieldSize;
}

--solutions--

js
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()]);
}