#20032. 藤藤学数列4---解题思路(自己先思考,实在想不出来了可以参考哈)

byy 2020-11-24 10:39:48 2020-12-31 14:02:10 14 返回题目

方法一:设置两个求和变量subSum和allSUM,

subSUM用来存放每一小部分的和,如1+2+3;

allSUM用来存放所有数的和,如1+(1+2)+(1+2+3);

关键代码:

for(int i=1;i<=n;i++){

	subSum=subSum+i;
	allSum=allSum+subSum;
}

方法二:计算整个算式1+(1+2)+(1+2+3)+...+(1+2+...+n-2)+(1+2+..+n-2+n-1)+(1+2+..+n-2+n-1+n)中1,2,3,4...,n-2,n-1,这些数出现的次数;观察可以发现:

数字------出现次数

1---------n

2------- n-1

3--------n-2

...以此类推(找规律) 数字和个数的和为n+1

n-2------3

n-1------2

n -------1

整个算式求和就可以表示成1n+2(n-1)+3*(n-2)4(n-3)+...+(n-2)*3+(n-1)2+n1

关键代码:

  for (int i = 1; i <= n; i++) {

    #变量i对应着数字,(n+1-i)对应着数字i出现的次数

        sum = sum + i * (n + 1 - i);

}
{{ vote && vote.total.up }}

共 1 条回复

yemaofeng

鲍老师真牛逼!!!