用 C++ 求出前 N 个自然数的平均值
在这个问题中,我们得到一个数字 n。我们的任务是求出前 N 个自然数的平均值。
数字的平均值定义为所有数字的总和除以数字总数。
N 个自然数的平均值定义为前 N 个自然数的和除以 N。
我们举个例子来理解这个问题,
Input : N = 23 Output : 12
说明 −
1 + 2 + 3 + ... + 22 + 23 = 276 276 / 23 = 12
解决方案方法
为了求出一个数字的平均值,我们将使用平均值公式,即:
平均值 = sum(N) / N
平均值 = (1 + 2 + 3 + ... + N) / N
我们知道 N 个自然数的和由公式给出,
$N^*(N+1)/2$
平均值为:
平均值 = N*(N+1)/2*N = (N + 1)/2
使用这个公式,我们可以求出前 N 个自然数的平均值。
示例
一个阐述我们解决方案工作原理的程序
#include <iostream> using namespace std; float calcAverage(int n) { return (float)( ((float)n + 1 )/2 ); } int main() { int N = 45; cout<<"The average of first "<<N<<" natural numbers is "<<calcAverage(N); return 0; }
输出
The average of first 45 natural numbers is 23
广告