簡體   English   中英

如何計算 Java 中除數的平均數

[英]How do I calculate the average number of divisors in Java

我正在制作一個包含方法numdiv的程序,該方法找到d的除數。 我還有一個叫做sumSquares的方法,它可以找到 1 和n之間的平方。 我在 main 方法中放置了一個 for 循環來查找 10 到 50 的平方和和除數,只是現在我想找到除數 b/w 10 和 50 的平均數。這是代碼:


    public static void main(String[] args) {
        System.out.println("NUMBER\tSUM OF SQUARES\tDIVISORS");//setup table
        //loop through numbers 10 to 50
        for(int i = 10; i <= 50; i++){ //i represents the integers to print
            System.out.println(i + "\t" + sumSquares(i) + "\t\t" + numdiv(i));
        }
    }

    public static int sumSquares(int n){
        int sum = 0; //define sum
        for(int num = 1; num <= n; num++){
            sum = (num*num) + sum; //set sum equal to num*num then add to sum
        }
        return sum;
    }

    public static int numdiv(int d){
        int div = 0; //counter for divisors

        for(int num = 1; num <= d; num++){
            if(d % num == 0){ //check if d is a divisor
                div++; //increment div each time true
            }
        }
        return div;
    }
}

有人知道我該怎么做嗎?

根據您的方法,無需更改它們以保持您的邏輯,您可以將您的main方法更改為:

public static void main(String[] args) {
    System.out.println("NUMBER\tSUM OF SQUARES\tDIVISORS");//setup table
    //loop through numbers 10 to 50
    int sumSquares = 0;
    int numDiv = 0;
    int totalSquares = 0;
    int totalDiv = 0;
    for(int i = 10; i <= 50; i++){ //i represents the integers to print
        sumSquares = sumSquares(i);
        numDiv = numdiv(i);
        System.out.println(i + "\t" + sumSquares + "\t\t" + numDiv);
        totalSquares += sumSquares;
        totalDiv += numDiv;
    }
    System.out.printf("Average sumSquares: %d - Average numDiv: %d", totalSquares/41, totalDiv/41);
}

注意:我已經對 41 除數進行了硬編碼,因為您也對 10 到 50 之間的數字進行了硬編碼。 你應該把它和你for循環數外部化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM