链家2018春招C/C++开发实习生在线考试编程题

时间:2023-11-26 13:46:20

题目一

链家2018春招C/C++开发实习生在线考试编程题

题解:该题目意思就是让你输入n组数据,然后求并集,利用STL容器set集合的特性:元素不重复存储,我们可以很轻易得出答案

 #include <iostream>
#include <set>
using namespace std;
int function2()
{
set<int> a;
int lines,row;
int element;
while(cin>>lines) //输入lines组数据
{
a.clear();//每次测试数据前都要将之前清空
for(int i=;i<lines;i++)
{
cin>>row; //输入每组数据的的个数
for(int j=;j<row;j++)
{
cin>>element;//具体的每个元素
a.insert(element); //直接插入集合a中,会自动判断是否重复,如果重复,则不会插入,返回false
}
}
cout<<a.size()<<endl; //输出集合大小即可以
}
return ;
}

题目二

链家2018春招C/C++开发实习生在线考试编程题

题目解析:由三角形不难看出a+b>c,根据我们学习过的斐波那契数列1   2     3    5    8    13 。。。。。从下面这张照片我们可以了解一下斐波那契数列的特点,由此可以知道,从1到n,不在斐波那契数列上的应该是被拿掉的木棍数目

链家2018春招C/C++开发实习生在线考试编程题

代码实现

 #include<stdio.h>
int main()
{
int result=;//该值是输出结果值,初始化为0
int N=;
int i,a,b;
while(scanf("%d",&N)!=EOF)
{
for(i=,a=,b=;i<=N;i++)
{
if(a+b>i)
{
result++;
}
else
{
a=b;
18 b=i;
}
}
printf("%d\n",result);
result=; }
return ;
}

附链接 Java版本实现https://www.cnblogs.com/wupeixuan/p/8747665.html