题目描述
观察这个数列:1 3 0 2 -1 1 -2 …
这个数列中后一项总是比前一项增加2或者减少3。
栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加a或者减少b的整数数列可能有多少种呢?
对于100%的数据,1< =n< =1000,-1,000,000,000< =s< =1,000,000,000,1< =a, b< =1,000,000。
测试用例:4 10 2 3,结果:2
解题思路
- 封装操作,令
p=(+a,-b)
,设首项为x,则根据题意需要保证: x + ( x + p ) + ( x + 2 p ) + . . . + ( x + ( n − 1 ) p ) = s x+(x+p)+(x+2p)+...+(x+(n-1)p)=s x+(x+p)+(x+2p)+...+(x+(n−1)p)=s即 n ∗ x + ( p + 2 p + . . . + ( n − 1 ) p ) = s n*x+(p+2p+...+(n-1)p)=s n