九度 和為S的連續正數序列

2021-09-07 03:34:16 字數 2179 閱讀 6154

題目1354:和為s的連續正數序列

時間限制:2 秒

記憶體限制:32 兆

特殊判題:

提交:2008

解決:622

題目描述:小明很喜歡數學,有一天他在做數學作業時,要求計算出9~16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100(至少包括兩個數)。沒多久,他就得到另一組連續正數和為100的序列:18,19,20,21,22。現在把問題交給你,你能不能也很快的找出所有和為s的連續正數序列? good luck!

輸入:輸入有多組資料。

每組資料僅包括1個整數s(s<=1,000,000)。如果s為負數時,則結束輸入。

輸出:對應每組資料,若不存在和為s的連續正數序列,則輸出「pity!」;否則,按照開始數字從小到大的順序,輸出所有和為s的連續正數序列。每組資料末尾以「#」號結束。

樣例輸入:

4

5100

-1

樣例輸出:

pity!

#2 3

#9 10 11 12 13 14 15 16

18 19 20 21 22

#

題解:(m+n)(n-m+1)/2=n;令m+n=i;然後找n-m+1

**:

1 #include2 #include3 #include4 #include5 #include6

#define mem(x,y) memset(x,y,sizeof(x))

7using

namespace

std;

8const

int inf=0x3f3f3f3f

;9 typedef long

long

ll;10

intx,y;

11int

main()

26 puts(""

);27}28

}29if(!flot)puts("

pity!\n#");

30else puts("#"

);31}32

return0;

33 }

第二種解法,很好:

**:、

1

/*#include

2#include

3#include

4#include

5#include

6#define mem(x,y) memset(x,y,sizeof(x))

7using namespace std;

8const int inf=0x3f3f3f3f;

9typedef long long ll;

10int x,y;

11int main()

26puts("");27}

28}29if(!flot)puts("pity!\n#");

30else puts("#");31}

32return 0;33}

*/34 #include35 #include36 #include37 #include38 #include39

#define mem(x,y) memset(x,y,sizeof(x))

40using

namespace

std;

41const

int inf=0x3f3f3f3f

;42 typedef long

long

ll;43

intmain()puts(""

);57 r++;

58 sum+=r;59}

60if(sum>n)

64else68}

69if(!flot)puts("

pity!\n#");

70else puts("#"

);71}72

return0;

73 }

九度 和為S的連續正數序列

題目1354 和為s的連續正數序列 時間限制 2 秒 記憶體限制 32 兆 特殊判題 否 提交 2008 解決 622 題目描述 小明很喜歡數學,有一天他在做數學作業時,要求計算出9 16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100 至少包括...

和為S的連續正數序列

題目描述 小明很喜歡數學,有一天他在做數學作業時,要求計算出9 16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100 至少包括兩個數 沒多久,他就得到另一組連續正數和為100的序列 18,19,20,21,22。現在把問題交給你,你能不能也很快的...

和為S的連續正數序列

小明很喜歡數學,有一天他在做數學作業時,要求計算出9 16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100 至少包括兩個數 沒多久,他就得到另一組連續正數和為100的序列 18,19,20,21,22。現在把問題交給你,你能不能也很快的找出所有和...