`Feeder` is #1 from the from the 2024 AP Computer Science A Free Response problems.

https://apcentral.collegeboard.org/media/pdf/ap24-frq-comp-sci-a.pdf

Part (a) `simulateOneDay` method

``````public void simulateOneDay(int numBirds)
{
if(Math.random() < 0.95)
{
int foodPerBird = (int) (Math.random() * 41) + 10;
currentFood -= numBirds * foodPerBird;
if(currentFood < 0)
currentFood = 0;
}
else
{
currentFood = 0;
}
}
``````

For more on working with `Math.random()` see Generating numbers with Math.random().

Part (b) `simulateManyDays` method

``````public int simulateManyDays(int numBirds, int numDays)
{
int daysLeft = numDays, foundFood = 0;
while(daysLeft > 0 && currentFood > 0)
{
daysLeft--;
foundFood++;
simulateOneDay(numBirds);
}
return foundFood;
}
``````

2024 AP CS Exam Free Response Solutions

Get help from AP CS Tutor Brandon Horn

See an error? Question? Please comment below.

Comment on Feeder

2024-05-13 comment

(Email withheld)

If I made the random number 0 - 100 do you think I would get points off? I adjusted the if statement accordingly to: `if (randomNum < 95)`

Response

Although it is not necessary to convert the number returned by `Math.random` into an `int`, a solution that did so correctly would not be penalized.