题目一
题解:该题目意思就是让你输入n组数据,然后求并集,利用STL容器set集合的特性:元素不重复存储,我们可以很轻易得出答案
1 #include <iostream>
2 #include <set>
3 using namespace std;
4 int function2()
5 {
6 set<int> a;
7 int lines,row;
8 int element;
9 while(cin>>lines) //输入lines组数据
10 {
11 a.clear();//每次测试数据前都要将之前清空
12 for(int i=0;i<lines;i++)
13 {
14 cin>>row; //输入每组数据的的个数
15 for(int j=0;j<row;j++)
16 {
17 cin>>element;//具体的每个元素
18 a.insert(element); //直接插入集合a中,会自动判断是否重复,如果重复,则不会插入,返回false
19 }
20 }
21 cout<<a.size()<<endl; //输出集合大小即可以
22 }
23 return 0;
24 }
题目二
题目解析:由三角形不难看出a+b>c,根据我们学习过的斐波那契数列1 2 3 5 8 13 。。。。。从下面这张照片我们可以了解一下斐波那契数列的特点,由此可以知道,从1到n,不在斐波那契数列上的应该是被拿掉的木棍数目
代码实现
1 #include<stdio.h>
2 int main()
3 {
4 int result=0;//该值是输出结果值,初始化为0
5 int N=0;
6 int i,a,b;
7 while(scanf("%d",&N)!=EOF)
8 {
9 for(i=4,a=2,b=3;i<=N;i++)
10 {
11 if(a+b>i)
12 {
13 result++;
14 }
15 else
16 {
17 a=b;
18 b=i;
19 }
20 }
21 printf("%d
",result);
22 result=0;
23
24 }
25 return 0;
26 }
附链接 Java版本实现https://www.cnblogs.com/wupeixuan/p/8747665.html