# Array# Greedy# Simulation

e960 - Error

🔗 前往 ZeroJudge 原題

題目描述

題目要求讀取一串數字,並根據特定規則計算一系列的總和。具體規則是,對於每個數字 a[i],計算從 a[i-1]a[0] 的總和,並將結果存儲起來。最後,按照相反的順序輸出這些總和。

解題思路

這道題的解題思路比較直接。首先,讀取輸入的數字序列並存儲在一個數組 a 中。然後,使用一個迴圈遍歷數組,對於每個元素 a[i],計算從 a[i-1]a[0] 的總和,並將結果存儲在另一個數組 ans 中。最後,按照相反的順序輸出 ans 數組中的元素。由於題目沒有明確說明輸入的數量,因此使用一個足夠大的數組來存儲輸入。

複雜度分析

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

程式碼

#include <stdio.h>
int main(){
	long long int a[100001],x,ans[10001];
	int n=0,nn=0;
	while(scanf("%lld",&x)>0)
		a[n++]=x;
	int i=n-2;
	while(i>=0){
		long long int z=a[i],add=0;
		while(z--)
			add+=a[--i];
		i--;
		ans[nn++]=add;
	}
	while(nn--)
		printf("%lld\n",ans[nn]);
}

Discussion