#include<iostream>
#include<math.h>
using namespace std;
void main(){
int n, m;
int i, j;
while (cin >> n >> m)
{
if (n == 0 && m == 0)
return;
for (j = sqrt(2 * m); j >= 1; j--)
{
i = (2 * m / j + 1 - j) / 2;
if ((2 * i + j - 1) * j / 2 == m)
cout << "[" << i << "," << i + j - 1 << "]" << endl;
}
cout << endl;
}
}
本文介绍了一个使用 C++ 编写的程序,该程序能够找出所有符合条件的整数序列区间[i, i+j-1],使得这些区间的元素之和等于给定的目标值m。通过逐步递减的遍历方式,结合数学公式简化计算过程,实现了高效查找。

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



