/** * 和为n的连续正整数序列 */ void findContinuousSequence(int n) { if (n < 3) return; int small = 1; int big = 2; int middle = (1 + n) / 2; int sum = small + big;//初试和 while (small < middle) {//small到中部即停止继续寻找 if (sum == n)//符合题意的连续序列 cout << small << "..." << big << endl; if (sum > n) {//大于n,去掉最小值;最小值+1 sum = sum - small; small++; } else {//大于n,加一个大一点的数 big++; sum += big; } } }