和為s的連續正數序列41
阿新 • • 發佈:2019-01-24
1、和為s的連續正數序列
#include<iostream> using namespace std; void printSequence(int start,int end) { for(int i = start; i<=end; i++) { printf("%d",i); } printf("\n"); } void findSerialSequence(int num) { if(num<3) { return; } int begin = 1; int end = 2; int midden = (num+1)/2; int curSum = begin+end; while(begin<midden)//begin增加到給定值得中值時,end必定在begin的右邊,此時及以後begin+end的值必然大雨給定的值, { if( curSum == num) { printSequence(begin,end); } while(curSum>num&&begin<midden) { curSum -= begin; begin++; if( curSum == num) { printSequence(begin,end); } } end++; curSum +=end; } } int main() { findSerialSequence(15); return 0; }