洛谷 P1147 連續自然數和

2022-04-07 05:24:59 字數 1047 閱讀 1024

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

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

輸入格式:

包含乙個整數的單獨一行給出m的值(10 <= m <= 2,000,000)。

輸出格式:

每行兩個自然數,給出乙個滿足條件的連續自然數段中的第乙個數和最後乙個數,兩數之間用乙個空格隔開,所有輸出行的第乙個按從小到大的公升序排列,對於給定的輸入資料,保證至少有乙個解。

輸入樣例#1: 複製

10000

輸出樣例#1: 複製

18 142 

297 328

388 412

1998 2002

#include#include

#include

#include

#include

using

namespace

std;

maplong,int>ma;

intm;

long

long sum[2000010

];int

main()

85分暴力

思路:改成二分就快多了。

#include#include

#include

#include

using

namespace

std;

intm;

intl,r,mid;

long

long sum[2000010

];int find(long

long

x)

if(sum[l]==x) return

l;

else

return0;

}int

main()

}

洛谷P1147 連續自然數和

連續自然數和 題目描述 對乙個給定的自然數m,求出所有的連續的自然數段,這些連續的自然數段中的全部數之和為m m 2000000 例子 1998 1999 2000 2001 2002 10000,所以從1998到2002的乙個自然數段為m 10000的乙個解。分析可以把連續自然數段看成乙個等差數列...

洛谷 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的...