洛谷P1147 連續自然數和

2021-07-26 04:32:31 字數 633 閱讀 4238

連續自然數和

題目描述

對乙個給定的自然數m,求出所有的連續的自然數段,這些連續的自然數段中的全部數之和為m(m<=2000000)。

例子:1998+1999+2000+2001+2002 = 10000,所以從1998到2002的乙個自然數段為m=10000的乙個解。

分析可以把連續自然數段看成乙個等差數列,設解的區間為[x,y]根據求和公式可知:m=(x+y)*(y-x+1)/2,所以列舉x,y,根據公式判斷是否等於m。(如果此時的和大於m,那麼就可以break掉)

**

vari,j,n:longint;

ans:real;

begin

readln(n);

for i:=1 to n-1 do

begin

for j:=i to n do

begin

ans:=(i+j)*(j-i+1)/2;

if ans>=n then break;

end;

if ans=n then writeln(i,' ',j);

end;

end.

洛谷 P1147 連續自然數和

對乙個給定的自然數m,求出所有的連續的自然數段,這些連續的自然數段中的全部數之和為m。例子 1998 1999 2000 2001 2002 10000,所以從1998到2002的乙個自然數段為m 10000的乙個解。包含乙個整數的單獨一行給出m的值 10 m 2,000,000 每行兩個自然數,給...

洛谷 P1147 連續自然數和

前言 只為轉c 而寫個解題報告。題目描述 對乙個給定的自然數m,求出所有的連續的自然數段,這些連續的自然數段中的全部數之和為m。例子 1998 1999 2000 2001 2002 10000,所以從1998到2002的乙個自然數段為m 10000的乙個解。輸入格式 包含乙個整數的單獨一行給出m的...

洛谷 P1147 連續自然數和

前言 只為轉c 而寫個解題報告。題目描述 對乙個給定的自然數m,求出所有的連續的自然數段,這些連續的自然數段中的全部數之和為m。例子 1998 1999 2000 2001 2002 10000,所以從1998到2002的乙個自然數段為m 10000的乙個解。輸入格式 包含乙個整數的單獨一行給出m的...