小明很喜歡數學,有一天他在做數學作業時,要求計算出9~16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100(至少包括兩個數)。沒多久,他就得到另一組連續正數和為100的序列:18,19,20,21,22。現在把問題交給你,你能不能也很快的找出所有和為s的連續正數序列? good luck!
輸入:輸入有多組資料。
每組資料僅包括1個整數s(s<=1,000,000)。如果s為負數時,則結束輸入。
輸出:對應每組資料,若不存在和為s的連續正數序列,則輸出「pity!」;否則,按照開始數字從小到大的順序,輸出所有和為s的連續正數序列。每組資料末尾以「#」號結束。
樣例輸入:45
100-1
樣例輸出:
pity!
#2 3
#9 10 11 12 13 14 15 16
18 19 20 21 22
#思想:兩個指標一起從前往後掃瞄!若大於s,則下邊界++,若小於s,則上邊界++( 邊界的意思是數列的上下界哦!不要弄錯~ ),相等則輸出一對,然後繼續!s/2,因為後面在掃瞄,兩個數相加就一定大於s了!( 一組序列至少兩個數哦~呵呵 )
**ac:
[cpp]
#include
int main()
if( s < 3 )
low = 1;
high = 2;
sum = 3;
half = s / 2;
flag = 0;
while( low <= half )
else if( sum < s )
else
printf("%d\n", high);
sum -= low;
low++;
} }
if( !flag )
printf("#\n");
} return 0;
}
和為S的連續正數序列
題目描述 小明很喜歡數學,有一天他在做數學作業時,要求計算出9 16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100 至少包括兩個數 沒多久,他就得到另一組連續正數和為100的序列 18,19,20,21,22。現在把問題交給你,你能不能也很快的...
和為S的連續正數序列
小明很喜歡數學,有一天他在做數學作業時,要求計算出9 16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100 至少包括兩個數 沒多久,他就得到另一組連續正數和為100的序列 18,19,20,21,22。現在把問題交給你,你能不能也很快的找出所有和...
和為S的連續正數序列
小明很喜歡數學,有一天他在做數學作業時,要求計算出9 16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100 至少包括兩個數 沒多久,他就得到另一組連續正數和為100的序列 18,19,20,21,22。現在把問題交給你,你能不能也很快的找出所有和...