碰到这样一个面试题:连续正整数之和为1000的共有几组?
一看题目就晕了,回来赶紧上网搜索了一翻,最后找到如下这种解决方案,个人认为比较容易理解,如此贴在博客中和大家一起分享。
设从n加到m, 其和为 (n+m)(m-n+1)/2=1000, 即 (n+m)(m-n+1)=2000, 即把2000分解成两个数的乘积,且这两个数为一奇一偶, 2000=2^4*5^3(2的3次方乘以5的3次方), 于是奇数可能为 5^0, 5^1, 5^2, 5^3。
- 当奇数为 5^0=1 时,偶数为2000,得方程 n+m=2000,m-n+1=1,解得 m=n=1000(不合,舍去)
- 当奇数为 5^1=5 时,偶数为400,得方程 n+m=400,m-n+1=5,解得 m=203,n=197,得整数组 197,198,199,200,201,202,203.
- 当奇数为 5^2=25 时,偶数为80,得方程 n+m=80,m-n+1=25,解得 m=53,n=27,得整数组 27,28,....,52,53.
- 当奇数为 5^3=125 时,偶数为16,得方程 n+m=125,m-n+1=16,解得 m=71,n=54,得整数组 54,55,....,70,71.