zoukankan      html  css  js  c++  java
  • 剑指offer(41):和为s的连续正数序列

    输入一个整数s,打印出所有何为s的连续正数序列(至少含有两个数)。 
    /**
    和为s的连续正整数序列
    输入一个整数s,打印出所有何为s的连续正数序列(至少含有两个数)。 
    */
    #include<iostream>
    #include<vector>
    using namespace std;
    int main(){
        int N;
        
        while(cin>>N){
            int low = 1;
            int high = 2;
            int sum = low + high;
            int mid = (N+1)/2
            vector<vector<int> > result;
            vector<int> tmpresult;
            
            while(low<mid&&low<high){
                
                if(sum==N){
                    for(int i=low;i<=high;i++){
                        tmpresult.push_back(i);
                    }
                    result.push_back(tmpresult);
                    tmpresult.clear();
                    high++;
                    sum += high;//每次high+1,则sum值加上high值 
                }else if(sum<N){
                    
                    high++;
                    sum += high;//每次high+1,则sum值加上high值 
                }else{
                    sum -= low;//要先减去low值,low值再加 
                    low++;
                    
                }
            }
            //打印一个二维vector 
            for(vector<vector<int> >::iterator it = result.begin();it!=result.end();it++){
                for(int i=0;i<(*it).size();i++){
                    cout<<(*it)[i]<<" ";
                }
                cout<<endl;
            } 
            
        }
        return 0;
    } 
  • 相关阅读:
    初学版本控制更新Version control
    关于函数式编程(Functional Programming)
    Annotation
    Container 、Injection
    Build Tools
    Version Control
    URL和URI的区别
    函数式编程语言
    HTTP协议的简单解析
    Windows10安装MySQL8.0
  • 原文地址:https://www.cnblogs.com/ttzz/p/13629571.html
Copyright © 2011-2022 走看看