Problem C: 高斯算法-简单的数列2
[Creator : ]
Description
数学题:1+2+3 - 4+5+6+7 - 8+ ... ... +77+78+79 - 80 = ?
编程题:输入一个整数,例如4 ;
将输入的数字+2 递增3次 例如 4,6,8 , 10 并按照上述数学题的加减规律4+6+8-10组成一组,输入这样一组的数有多少组 例如5组;
4+6+8-10+12+14+16-18+20+22+24-26+28+30+32-34+36+38+40-42=200
HINT
这个算式的特点是:每四个为一组,而且每组中都是前三个相加然后减去第四个数。
变减为加,整体推算。 四个数为一组,每组中第四个数(减数)为4的倍数,共80/4=20组 1+2+3-4+5+6+7-8+9+... ...+77+78+79-80 =(1+80)*80/2-[(4+80)*20/2]*2 =3240-1680 =1560 这样想: 开始把减数全部当成加数来算了, 最后应该减去这些减数的2倍。
分组累计: 每组得数依次为2,10,18,......154(恰好都是每组中第一个数的2倍) 1+2+3-4+5+6+7-8+9+......+77+78+79-80 =(1+2+3-4)+(5+6+7-8)+......+(77+78+79-80) =2+10+18+......+146+154 =(2+154)*20/2 =1560 这样想: 四个数分为一组,80个数被分成20组: (1*2)+(5*2)+(9*2)+......+(77*2)加数,减数分开统计 把减数全部抽出来以后,剩下的加数是: 1+2+3,5+6+7,......,77+78+79 (1+2+3)+(5+6+7)+......(77+78+79) =(6+234)*20/2 =2400 20个减数的和为:(4+80)*20/2=840 原式的得数为: 2400-840=1560 这样想: 80个数中60个是加数,剩下20个是减数