用于Java中的循环 - 指数



基本上,有一组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;
    }
}

最新更新