输入一个正数n,输出所有和为n连续正整数序列
2012-02-06 13:44
351 查看
public class lzwCode { public static void main(String[] args) { findCount(15); } /** * 题目:输入一个正数n,输出所有和为n连续正整数序列。 * * 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。 * * 思路:因为整数序列是有序的,可以设立两个游标begin和end,通过判区间[begin,end] * 的和是否为N来得到这个序列。如果区间和大于n,begin往前移动,如果小于n,end往前移动, * 等于就输出这个区间。时间复杂度是0(n)。 * * @param n */ public static void findCount(int n) { int begin = 1; int end = 2; int sum = begin + end; while (begin < end && begin < (n + 1) / 2) { if (sum < n) { end++; sum += end; } else if (sum > n) { sum -= begin; begin++; } else { System.out.println(begin + " 到 " + end + " 和等于 " + n); sum -= begin; begin++; } } } }
控制台结果:
1 到 5 和等于 15
4 到 6 和等于 15
7 到 8 和等于 15
相关文章推荐
- 输入一个正数 n,输出所有和为 n 连续正数序列。
- 网易笔试题:输入一个正整数,若该数能用几个连续正整数之和表示,则输出所有可能的正整数序列。
- 输入一个正数n,输出所有和为n 连续正数序列
- 网易笔试题:输入一个正整数,若该数能用几个连续正整数之和表示,则输出所有可能的正整数序列。
- 输入一个正数 n,输出所有和为 n 的连续正数序列 [No. 25]
- 输入一个正数 n,输出所有和为n 连续正数序列。
- 输入一个正数n,输出所有和为n 连续正数序列
- 输入一个正数n,输出所有和为n连续正数序列
- 输入一个正数n,输出所有和为n 连续正数序列
- 输入一个正数 n,输出所有和为 n 连续正数序列。 java实现
- 网易面试题 输入一个正数n,输出所有和为n连续正数序列
- 输入一个正数n,输出所有和为n连续正数序列。
- 写正确程序需要注意的地方:输入一个正数n,输出所有和为n连续正数序列。
- 输入一个正数n,输出所有和为n连续正数序列。
- 编程题:输入一个正整数,若该数能用几个连续正整数之和表示,则输出所有可能的正整数序列
- 输入一个正数n,输出所有和为n连续正数序列。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。
- 【算法学习-01】 输入一个正数 n,输出所有和为 n 连续正数序列。
- 输入一个正数n,输出所有和为n连续正数序列。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。
- 输入一个正数n,输出所有和为n连续正数序列。
- 输入一个正数n,输出所有和为n连续正数序列。