e960 - Error
題目描述
題目要求讀取一串數字,並根據特定規則計算一系列的總和。具體規則是,對於每個數字 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]);
}