只考加法的面试题(编程之美2.21)

我们知道:
1 + 2 = 3;
4 + 5 = 9;
2 + 3 + 4 = 9
等式的左边都是两个或者两个以上连续的自然数相加,那么是不是所有的整数都可以写成这样的形式?发现:4、8 等数并不能写成 这样的形式。
问题1:写一个程序,对于一个64位正整数,输出它所有可能的连续自然数(两个以上)之和的算式。
问题2:大家在测试上面程序的过程中,肯定会注意到一些数字不能够表达为一系列连续的自然数之和,例如:32好像就是找不到。那么这样的数字有什么规律?能否证明?
问题3:在64位正整数范围内,子序列数目最多的数是哪一个?这个问题要用程序蛮力搜索,恐怕要运行很长时间,能否用数学知识推到出来?

你可能感兴趣的:(只考加法的面试题(编程之美2.21))