输入一个整数Sum,打印出和为Sum的连续整数序列。例如2+3+4 =4+5=9;
求解过程图解:
求和为9的连续序列的过程:
看代码:
#include<iostream> using namespace std; bool Find(int data[],int length,int sum,int&num1,int&num2); void Print(int num1,int num2); void Find(int sum); int main() { Find(9); return 0; } void Find(int sum) { if(sum<3) return ; //序列不存在 int small=1; int big=2; int middle=(1+sum)/2; int currentSum=small+big; while(small<middle) { if(currentSum==sum) Print(small,big); while(currentSum>sum&&small<middle) { currentSum-=small; small++; if(currentSum==sum) Print(small,big); } big++; currentSum+=big; } } void Print(int num1,int num2) { for(int i=num1;i<=num2;i++) cout<<i<<" "; cout<<endl; }