





void findTwoDataSumed(int *arr,int Length,int v_sum,int *num1,int *num2){if(arr==NULL||Length==0){return;}int first=0;int last=Length-1;while(first<last){if(arr[first]+arr[last]>v_sum){last--;}if(arr[first]+arr[last]<v_sum){first++;}if(arr[first]+arr[last]==v_sum){*num1=arr[first];*num2=arr[last];return;}}}


void findContinueSequenceSum(int v_sum){if(v_sum<3){return;}int start=1;int end=2;int curSum=start+end;int mid=(v_sum+1)/2;while(start<mid){if(curSum==v_sum){printSeqNum(start,end);}if(curSum>v_sum&&start<mid){curSum-=start;start++;if(curSum==v_sum){printSeqNum(start,end);}}if(curSum<=v_sum&&start<mid){end++;curSum+=end;}}}void printSeqNum(int start,int end){for(int i=start; i<end; i++){std::cout<<start<<",";}std::cout<<end;}
原文:http://www.cnblogs.com/yml435/p/4655470.html