水啊!話說最近老是在做水題。。。
相當於求一段公差為1的等差數列使得其和為m,利用公式可以很輕鬆地推出a(1-a)+b(b+1)=2m,也就是說,找到一組(a,b)滿足上述式子,其實就是答案。
既然這麼水,為什麼要整理這道題呢?
注意注意!防水防爆防溢位!可惡的溢位!wa了我三個點!
額,還是說一下怎麼找a和b吧,我們列舉a,就可以求出b(b+1),接下來只需要驗證這個數是否可以表示成乙個整數乘以該整數加1的形式。我是取其平方根t,看看他等不等於t(t+1)。這樣做貌似是對的,,,暫時沒反例。
總之一句話!謹防溢位!
1 #include 2 #include 3ac**4 typedef long
long
ll;5
6 inline int
judge(ll x)
1112
intmain() 23}
24return0;
25 }
連續自然數和 洛谷 1147
對乙個給定的自然數m,求出所有的連續的自然數段,這些連續的自然數段中的全部數之和為m。例子 1998 1999 2000 2001 2002 10000,所以從1998到2002的乙個自然數段為m 10000的乙個解。輸入格式 包含乙個整數的單獨一行給出m的值 10 m 2,000,000 輸出格式...
洛谷1147 連續自然數和
對乙個給定的自然數m,求出所有的連續的自然數段,這些連續的自然數段中的全部數之和為m。例子 1998 1999 2000 2001 2002 10000,所以從1998到2002的乙個自然數段為m 10000的乙個解。輸入輸出格式 輸入格式 包含乙個整數的單獨一行給出m的值 10 m 2,000,0...
連續自然數和
題目描述 對乙個給定的自然數m,求出所有的連續的自然數段,這些連續的自然數段中的全部數之和為m。例子 1998 1999 2000 2001 2002 10000,所以從1998到2002的乙個自然數段為m 10000的乙個解。輸入輸出格式 輸入格式 包含乙個整數的單獨一行給出m的值 10 m 2,...