56.1k views
3 votes
Start with a population of 500 organisms, a growth rate of 2, and a growth period to achieve this rate of 6 hours. Assuming that none of the organisms die, this would imply that this population would double in size every 6 hours. Thus, after allowing 6 hours for growth, we would have 1000 organisms, and after 12 hours, we would have 2000 organisms.

Write a program that takes these inputs and displays a prediction of the total population.


MY PROGRAM:

organisms=int(input("Enter the initial number of organisms:"))

growth=float(input("Enter the rate of growth [a real number > 1]:"))

numHours=int(input("Enter the number of hours to achieve the rate of growth:"))

totalHours=int(input("Enter the total hours of growth:"))

population = organisms

hours=1

while numHours < totalHours:

population *= growth

hours += numHours

if hours >= totalHours:

break

print(" The total population is ", population)

My program gives the correct answer for the original problems numbers, but when I run it through our test case checker it comes back as 3/4 correct.. the problem test case being [organisms 7, growth rate 7, growth period 7, total hours 7]... can't see where I'm going wrong...

User Schlebe
by
7.2k points

1 Answer

3 votes

Answer:

It looks like there are a few issues with your program.

First, the line hours += numHours should be hours += 1. This is because you want to increment the hours variable by 1 each time through the loop, not by the number of hours required to achieve the growth rate.

Second, you are only multiplying the population by the growth rate once per iteration of the loop, but you should be doing it every time hours is less than or equal to totalHours. You can fix this by moving the population *= growth line inside the loop's if statement, like this:

while numHours < totalHours:

if hours <= totalHours:

population *= growth

hours += 1

if hours >= totalHours:

break

Finally, you are using the variable numHours in your while loop condition, but it should be hours. You should change while numHours < totalHours: to while hours < totalHours:.

With these changes, your program should work correctly for the test case you provided. Here is the modified version of your program:

organisms=int(input("Enter the initial number of organisms:"))

growth=float(input("Enter the rate of growth [a real number > 1]:"))

numHours=int(input("Enter the number of hours to achieve the rate of growth:"))

totalHours=int(input("Enter the total hours of growth:"))

population = organisms

User Brando Zhang
by
7.0k points