題目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的連續正數序列。每組資料末尾以「#」號結束。
樣例輸入:
45100
-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。現在把問題交給你,你能不能也很快的找出所有和...