h213 - 巨大金莎巧克力金字塔
題目描述
題目要求計算 1023 層金莎巧克力金字塔所需的金莎巧克力總數。金字塔的每一層都是一個等差數列,第 i 層有 i 個金莎巧克力。因此,問題等價於計算從 1 到 1023 的所有自然數的平方和。
解題思路
題目可以直接使用平方和公式求解,但由於層數較小,直接迴圈計算也是可行的。程式碼採用迴圈的方式,從 1 到 1023 迭代,並將每一層的金莎巧克力數量(i * i)累加到 ans 變數中。最後輸出 ans 的值。
複雜度分析
- 時間複雜度: O(n),其中 n 是金字塔的層數 (1023)。迴圈迭代了 n 次。
- 空間複雜度: O(1),程式碼只使用了常數級別的額外空間。
程式碼
#include <bits/stdc++.h>
using namespace std;
long long ans;
int main(){
for(long long i=1;i<=1023;++i)
ans+=i*i;
cout << ans;
}