要点:
1、编程实现用逗号分隔的未知个数的输入,而且要求输入回车即可执行程序,而且可能不是整数,是其他类型数据时,如何处理输入的问题,这样的题目容易在上机面试里卡壳,看似简单却没那么容易。
2、给了n个不同的整数,编程实现所有组合,即C(n,1),C(n,2)....C(n,n)
#include <iostream>
#include <vector>
using namespace std;
class Solution{
public:
void Combination(const vector<int>& number,int start,int end,int level)
{
if(level==0)
{
vector<int>::iterator it;
for(it=result.begin();it!=result.end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
return;
}
for(int i=start;i<=end&&i+level<=end+1;i++)
{
result.push_back(number[i]);
Combination(number,i+1,end,level-1);
result.pop_back();
}
}
private:
vector<int> result;
};
int main()
{
char tmp;
int numtmp;
vector<int> num;
while((tmp=cin.get()) !='\n'){ //输入通过设置一个char字符,每次取出来看是否是回车键或者是逗号,如果是回车符就停止,逗号就跳过,都不是就放回去,用具体类型来读取
if(tmp!=',')
{
cin.unget();
cin>