面试题41:和为s的两个数字 VS 和为s的连续正数序列
2016-06-02 15:52
471 查看
题目1:输入一个递增排序的数组和一个数字 s,在数组中查找两个数,得它们的和正好是 s。如果有多对数字的和等于 s,输出任意一对即可。
例如:输入数组{1 、2 、4、7 、11 、15 }和数字 15。由于 4+11 = 15 ,因此输出 4 和 11 。
题目2:输入一个正数 s,打印出所有和为 s 的连续正数序列(至少两个数)。
例如输入 15,由于 1+2+3+4+5=4+5+6=7+8=15,所以结果打出 3 个连续序列 1~5、4~6 和 7~8。
例如:输入数组{1 、2 、4、7 、11 、15 }和数字 15。由于 4+11 = 15 ,因此输出 4 和 11 。
/************************************************************************* > File Name: find_numbers_with_sum.cpp > Created Time: Thu 02 Jun 2016 12:18:54 PM PKT ************************************************************************/ #include<iostream> using namespace std; bool find_numbers_with_sum(int array[],int len,int sum,int &num1,int &num2) { bool found=false; if(array==NULL || len<=0){ return found; } int first=0; int last=len-1; while(first<last){ int tmp=array[first]+array[last]; if(tmp<sum){ first++; }else if(tmp>sum){ last--; }else{ num1=array[first]; num2=array[last]; found=true; break; } } return found; } //测试 void test() { int arr[6]={1,2,4,7,11,15}; int sum=15; int num1=0; int num2=0; find_numbers_with_sum(arr,6,sum,num1,num2); cout<<num1<<ends<<num2<<endl; }
题目2:输入一个正数 s,打印出所有和为 s 的连续正数序列(至少两个数)。
例如输入 15,由于 1+2+3+4+5=4+5+6=7+8=15,所以结果打出 3 个连续序列 1~5、4~6 和 7~8。
bool print_numbers_with_sum(int sum) { bool found=false; if(sum<3){ return found; } int small=1; int big=2; int mid=(1+sum)/2; int tmp=small+big; while(small<mid){ if(tmp<sum){ big++; tmp+=big; }else if(tmp>sum){ small++; tmp=tmp-(small-1); }else{ for(int i=small;i<=big;i++){ cout<<i<<ends; } cout<<endl; found=true; small++; tmp=tmp-(small-1); } } return found; } void test1() { print_numbers_with_sum(9); }
相关文章推荐
- 一个关于if else容易迷惑的问题
- 一道sql面试题附答案
- C# 超高面试题收集整理
- 人人网javascript面试题 可以提前实现下
- PHP中设置一个严格30分钟过期Session面试题的4种答案
- 据说是雅虎的一份PHP面试题附答案
- php牛逼的面试题分享
- 一套比较完整的javascript面试题(部分答案)
- 10个经典的Java main方法面试题
- 小米公司JavaScript面试题
- 超级全面的PHP面试题整理集合第1/2页
- 极易被忽视的javascript面试题七问七答
- 5个实用的shell脚本面试题和答案
- PHP经典面试题集锦
- 8个PHP数组面试题
- PHP中提问频率最高的11个面试题和答案
- 用PHP解决的一个栈的面试题
- Android工程师面试题大全
- PHP面试题之文件目录操作
- 几道坑人的PHP面试题 试试看看你会不会也中招