void FindContinuousSequence(int sum)
{
if (sum < 3)
return;
int small = 1;
int big = 2;
int middle = (1 + sum) / 2;
int curSum = small + big;
while (small < middle) {
if (curSum == sum)
PrintContinuousSequence(small, big);
while (curSum > sum && small < middle) {
curSum -= small;
small++;
if (curSum == sum)
PrintContinuousSequence(small, big);
}
big++;
curSum += big;
}
}
void PrintContinuousSequence(int small, int big)
{
for (int i = small, i <= big; ++i)
printf("%d ", i);
}输入一个正数s,打印出所有和为s的连续正数序列(至少包含两个数)
最新推荐文章于 2020-07-08 22:29:53 发布
本文介绍了一种用于寻找和打印指定和值的连续整数序列的算法。通过逐步增加和减少序列两端的数字,该算法能高效地找到所有可能的连续序列,直到达到所需的总和。
362

被折叠的 条评论
为什么被折叠?



