洛谷 P1147 连续自然数和
题目描述
对一个给定的自然数M,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为M。
例子:1998+1999+2000+2001+2002 = 10000,所以从1998到2002的一个自然数段为M=10000的一个解。
分析
数据弱,因此可用枚举法双重循环(m≤2000000)
#include <iostream>
#include <cstdio>
using namespace std;
int i,j,n,sum;
int main()
{
scanf("%d",&n);
for (i=1;i<=n-1;i++)
{
sum=i;
for (j=i+1;j<=n;j++)
{
sum=sum+j;
if (sum==n)
{
printf("%d %d\n",i,j);
break;
}
if (sum>n) break;
}
}
return(0);
}
本文针对洛谷P1147连续自然数和问题,通过枚举法双重循环来找出所有可能的连续自然数段,这些数段的总和等于给定的自然数M。示例代码使用C++实现。
1468

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



