我必须使用一个静态方法TotalAverage(int n)
来计算数字0 + 1 + 2 + .... + n的平均数字总数。因此总平均数(19)将被计算为(0 + 1 + ... + 9 + 1 + ... + 10)/ 20.0。我设法做它用下面的代码大部分:给定整数的平均数字总和是多少?
public static double TotalAverage(int n) {
double total = 0;
int count = 0;
while (n >= 0) {
total += n % 10;
n = n - 1;
count++;
}
return total/count;
}
它适用于人数达到9,但我得到了更大的数字不正确的结果。我意识到,一旦while语句达到10%10,它将总数增加0而不是10,但我无法弄清楚如何正确执行。
提示:从0到n的值之和等于(n^2 + n)/ 2。这消除了循环的需要。 – Makoto
问题是我不需要计算19 + 18 + 17 + 16 + ... + 0,但是以问题中所包含的方式。 – jack
@jack从您的描述中不清楚应该发生什么,也许你应该添加一个更大数字的细节,如:totalAverage(33) – dan