P1147連續自然數和 (尺取法)

2022-01-12 19:58:58 字數 487 閱讀 9655

題意:輸入乙個n,求連續幾個數加起來等於n,輸出這幾個連續的數的第乙個和最後乙個。10<=n<=2000 000

由於n巨大,雙重暴力顯然超時,網上有很多通過長度用公式的寫法,沒想到乙個等差能被翻出很多花樣,深表佩服。

不過那些看起來很nb的公式我是推不出來,還是用尺取法靠譜點,時間複雜度也是o(n

)

#include#include

#include

#include

#include

#include

#include

#define ll long long

#define inf 0x3f3f3f3f

using

namespace

std;

intn;

intmain()

else

if(sum

else}}

return0;

}

p1147

P1147 連續自然數和

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

P1147 連續自然數和

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

P1147 連續自然數和

對乙個給定的自然數mm,求出所有的連續的自然數段,這些連續的自然數段中的全部數之和為mm。例子 1998 1999 2000 2001 2002 100001998 1999 2000 2001 2002 10000,所以從19981998到20022002的乙個自然數段為m 10000m 1000...