# Math# Basic Calculation

e417v2 - Error

🔗 前往 ZeroJudge 原題

題目描述

題目要求計算一組數字的方差。輸入首先是一個整數 a,表示接下來將有 a 個數字。然後輸入這 a 個數字,計算這些數字的方差,並輸出結果。

解題思路

題目要求計算方差,方差的公式為:(sum(x_i)^2 - sum(x_i^2)) / 2n。程式碼中,p 儲存了所有數字的總和,q 儲存了所有數字的平方和。迴圈中讀取每個數字,並更新 pq。最後,使用公式計算方差並輸出。由於題目要求輸出整數,因此結果會被自動截斷。

複雜度分析

  • 時間複雜度: O(n)
  • 空間複雜度: O(1)

程式碼

#include <iostream>
using namespace std;
int main(){
	long long int a=0,p=0,q=0;
	while(cin >> a){
		long long int b;
		for(int i=0;i<a;i++){
			scanf("%lld",&b);
			p+=b;
			q+=b*b;
		}
		printf("%lld\n",(p*p-q)/2);
		a=0;p=0;q=0;
	}
}

Discussion