剑指offer第41题 和为s的两个数
生活随笔
收集整理的這篇文章主要介紹了
剑指offer第41题 和为s的两个数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
劍指offer第41題 和為s的兩個數 #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;elsecout<<"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 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/zhangyee/p/4727776.html
總結
以上是生活随笔為你收集整理的剑指offer第41题 和为s的两个数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU 4946 Area of Mus
- 下一篇: 前端学习-试卷