最近在践行代码,先把尚学堂的习题做完,遇到有点代表的就发个日志。
以下算法时间复杂度为N,还可以。这个好像是用了某种算法,具体叫动态规划法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/*
103. 【上机】编程求:∑1+∑2+……+∑100
这里输入最大数100作为参数
*/
public void sigma(int num){
//利用数组记录∑n的值,数组的index=n,特征:∑n=∑(n-1)+n
//数组下标等于数字,数组index为0的丢弃
int[] array_tmp=new int[num+1];
int sum=0;
for(int i=1;i<num+1;i++){
//数组index为0时,默认值0,可直接迭代
array_tmp[i]=array_tmp[i-1]+i;
sum=sum+array_tmp[i];
}
System.out.println("∑1+∑2+……+∑"+num+"的和为:"+sum);
}

∑1+∑2+……+∑100的和为:171700