計算級數 S(n) = Σ(i=1 to n) iⁱ。直接雙重迴圈實作:外層遍歷 1~n,內層計算 iⁱ 並累加。
public long Sum(int num)
{
long sum = 0;
for (int i = 1; i <= num; i++)
{
long pow = 1;
// 計算 i 的 i 次方
for (int j = 1; j <= i; j++)
{
pow *= i;
}
sum += pow;
}
return sum;
}
n=20 時 20²⁰ 已超 long 範圍(溢位)。System.Numerics.BigInteger 避免溢位,支援任意大 n。n,可預計算或記憶化。using System.Numerics;
public BigInteger SumOptimized(int n)
{
BigInteger sum = 0;
for (int i = 1; i <= n; i++)
{
sum += BigInteger.Pow(i, i); // 內建快速冪 + 大整數
}
return sum;
}