mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2025-12-19 18:18:27 -05:00
2.0 KiB
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()]);
}