秋招笔试题:
1.有一对兔子,从出生后第4个月就每月生一对兔子,这对小兔子长到第四个月又每个月生一对兔子,假设兔子都不死。编写一个程序求N个月后兔子的总对数。
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
//此方法为利用递归实现
int Fibo(int n) //定义Fibo函数
{
if (n == 1)return 1;//第一个数字为1
if (n == 2)return 1;//第二个数字为1
if (n == 3)return 1;
if (n > 3)//从第三个数开始,每一个数是前两个数的和
{
return Fibo(n - 1) + Fibo(n - 3);//隔4月生一对,是Fibo(n-3)隔3个月生,是Fibo(n-2)
}
}
int main()
{
int n, num;
cout << "please input n:";
cin >> n;//输入要打印的斐波拉契数列的个数(从第一个数开始的)
num = Fibo(n);//调用Fibo函数
cout << "第" << n << "个月有" << num << "对兔子" << endl;
system("pause");
return 0;
}
中兴:
2.某公司有N名员工,给定所有员工工资的清单,财务人员要按照特定的顺序排列员工的工资。他按照工资的频次降序排列,即给定清单中所有频次较高的工资在频次较低的工资之前出现。如果相同数量相同的员工有相同的工资,则将按照给定清单中该工资第一次出现的顺序排列。
写一个算法帮助财务人员排列员工工资的顺序。
输入: [10000, 20000, 40000, 30000, 30000, 70000, 70000, 70000,
30000, 40000, 20000, 50000, 50000, 50000, 50000, 60000,
60000, 40000, 40000, 60000, 70000, 80000, 90000, 100000 ]
输出: [ 40000, 40000, 40000, 40000, 70000, 70000, 70000, 70000,
50000, 50000, 50000, 50000, 30000, 30000, 30000, 60000,
60000, 60000, 20000, 20000, 10000, 80000, 90000, 100000] ]
#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
//用来排序的结构体
typedef struct _CntOr