秋林箭

每夜,携酒河上,饮且渔

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
#include<iostream>
using namespace std;

bool sumk(int*list,int length,int*num1,int*num2,int k)
{
    int have=false;
    if(list==NULL||length<=0||num1==NULL||num2==NULL)
        return have;
    *num1=0;
    *num2=0;
    int i=0;
    int j=length-1;
    while(i<j)
    {
        if(list[i]+list[j]==k)
            break;
        else if(list[i]+list[j]>k)
            j--;
        else if(list[i]+list[j]<k)
            i++;
    }
    if(list[i]+list[j]==k)
    {
        *num1=list[i];
        *num2=list[j];
        have=true;
    }
    return have;
}
int main()
{
    int a[1000];
    int c;
    int i=0;
    while(cin>>c)
    {
        a[i]=c;
        i++;
        if(cin.get()=='\n')
            break;
    }
    int k;
    cin>>k;
    int num1;
    int num2;
    if(sumk(a,i,&num1,&num2,k))
    cout<<num1<<' '<<num2;
    else
        cout<<"meiyou";
}

 

#include<iostream>
using namespace std;

void print(int i,int j)
{
    for(int k=i;k<=j;k++)
    {
        cout<<k<<' ';
    }
    cout<<endl;
}

void sumk(int k)
{
    if(k<=2)return;
    int i=1;
    int j=2;
    int sum=3;
    while(i<=k/2)
    {
        if(sum==k)
        { 
            print(i,j);
            sum-=i;
            i++;
            j++;
            sum+=j;
        }

        else if(sum<k)
        {
            j++;
            sum+=j;
        }

        else if(sum>k)
        {
            sum-=i;
            i++;
        }
            
    }
}
int main()
{
    //int a[1000];
    //int c;
    //int i=0;
    //while(cin>>c)
    //{
    //    a[i]=c;
    //    i++;
    //    if(cin.get()=='\n')
    //        break;
    //}
    int k;
    cin>>k;
    int num1;
    int num2;
    sumk(k);
    
}

 

posted on 2015-08-13 16:50  zhangyee  阅读(180)  评论(0编辑  收藏  举报