每日一题 输入一个正数n,输出所有和为n连续正数序列
题目要求:输入一个正数n,输出所有和为n连续正数序列
/**
* 输入一个正数n,输出所有和为n连续正数序列
* @param num
* @author 郑涛
*/
public void test(int num) {
//正数序列的最大数 一定小于 num / 2 + 1
int min = 1; //记录连续序列的初始值
int max = 0; //记录连续序列的终止值
//从一开始遍历到num
for (int i = 1; i <= num / 2; i++) {
int temp = 0; //记录连续序列的和
boolean flag = true;
min = i;
for (int j = i; j <= num / 2 + 1; j++) {
temp += j;
if(temp == num) {
max = j;
break;
}
if(temp > num) {
flag = false;
break;
}
}
if(flag) {
System.out.println(min + "->" + max);
}
}
}
题目来源:某公司笔试题