連續自然數和

2021-10-23 00:04:49 字數 913 閱讀 2196

題目描述

描述 description

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

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

輸入輸入格式 input format

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

輸出輸出格式 output format

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

樣例輸入

10000

樣例輸出

18 142

297 328

388 412

1998 2002

一開始我是這樣寫的,然後超時了,看了大神的思路,瞬間懂了,就自己寫了一遍,當資料很大時,省下了求sum的重疊時間。

#include

using

namespace std;

intmain()

if(sum > m)

break;}

}return0;

}

思路就是:定個區間,求區間的和,如果小於m,說明還沒完,就把右區間擴大;大於m就把左區間縮小,直到等於m時,把左區間縮小,為後面準備。

#include

using

namespace std;

intmain()

if(sum + b > m)

if(sum + b == m)

}return0;

}

連續自然數和

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

JZOJ 列舉 連續自然數和

對乙個給定的自然數m mm,求出所有的連續的自然數段,這些連續的自然數段中的全部數之和為mmm 樣例輸入10000樣例輸出18 142 297 328 388 412 1998 2002原本我是這樣寫的 include include using namespace std int n,k intr...

連續自然數平方和

22.連續自然數平方和 描述 提交自定義測試 題目描述 給你乙個數x,詢問有多少種連續自然數的平方和等於這個數,按照起始自然數由小到大的順序,輸出所有可能。輸入描述 輸入有多組,每組一行,乙個數x 輸出描述 對於每組資料,輸出多行 第一行,乙個數表示有多少種可能 以下每行輸出一種 第乙個數a是連續多...