基本上,有一组20只羊。在小组成长为80只绵羊的人口之后,该小组不再需要受到监督。每年发现绵羊,N,T,t,都有:
n = 220/(1 10(0.83)^t)
该程序试图找出必须监督绵羊多少年,并写出n的价值从零开始,最高为25。
。这是我到目前为止的代码...它似乎不起作用,我知道与乘以功率的部分有关。我正在尝试使用循环的每个迭代中乘以0.83的变量"功率"。感谢任何帮助,谢谢。
public static void main(String[] args) {
System.out.println("A breeding group of 20 bighorn sheep is released in a protected area in Colorado.");
System.out.println("After the group has reached a size of 80 sheep, the group does not need to be supervised anymore.");
System.out.println("This program calculates how many years the sheep have to be supervised.");
int number = 20;
int power = 1;
for(int years = 0; number < 80; power*= 0.83) {
number = 220 / (1 + 10 * power);
System.out.println("After " + years + " years, the number of sheep is: " + number);
years++;
}
}
}
将您的数据类型从int更改为double。我尝试了它,它运行正确。您可能还需要修改您的循环运行,而多年来&lt;25而不是数字&lt;80.并使数字成为循环内部的局部变量。
public static void main(String[] args) {
System.out.println("A breeding group of 20 bighorn sheep is released in a protected area in Colorado.");
System.out.println("After the group has reached a size of 80 sheep, the group does not need to be supervised anymore.");
System.out.println("This program calculates how many years the sheep have to be supervised.");
double power = 1;
boolean foundFirstOverEighty = false;
for (int years = 0; years < 25; years++) {
double number = 220 / (1 + 10 * power);
System.out.println("After " + years + " years, the number of sheep is: " + number);
if (!foundFirstOverEighty && number >= 80) {
System.out.println("First time number of sheep exceeded eighty. " + years + " years. number of sheep is: " + number);
foundFirstOverEighty = true;
}
power *= 0.83;
}
}