链家笔试题
2017-08-20 21:42
155 查看
1、小明身高为Xcm,他要摘苹果树上的苹果,他可以站在一个30cm的凳子上摘苹果,输入10个苹果与地面的距离,与小明的身高X,输出小明能够摘到苹果的个数。
2、随机产生N个数存入in.txt文件中为原始数据,将原始数据排序去重后存入out.txt中如下所示:
in.txt输入文件:
20 //随机数个数
41 467 334 500 169 724 478 358 962 464 705 145 281 827 961 491 995 942 827 436
out.txt输出文件:
19//排序去重后的随机数个数
41 145 169 281 334 358 436 464 467 478 491 500 705 724 827 942 961 962 995
3、要给N个人分组如[1,2],[3,9],[10,12],....,[x,N];输入M个人的序号,对应输出每个人所对应的组号。
输入示例:
5 //分为5组
2 7 3 4 9 //每组的人数
3 //3人
1 25 11 //各个人的序号
输出示例:(输出3个人对应的组号)
1
3
5
#include <iostream> using namespace std; /* 测试用例: 输入:100 200 150 140 129 134 167 198 200 111 110 输出:5 */ int Fun(int *Arr, int Hight) { int Num = 0; Hight += 30; for (int j = 0;j<10;++j) { if (Arr[j] <= Hight) { ++Num; } } return Num; } int main() { int Arr[10] = { 0 }; for (int i = 0;i<10;++i) { cin >> Arr[i]; } int Hight = 0; cin >> Hight; cout<<Fun(Arr, Hight)<<endl; return 0; }
2、随机产生N个数存入in.txt文件中为原始数据,将原始数据排序去重后存入out.txt中如下所示:
in.txt输入文件:
20 //随机数个数
41 467 334 500 169 724 478 358 962 464 705 145 281 827 961 491 995 942 827 436
out.txt输出文件:
19//排序去重后的随机数个数
41 145 169 281 334 358 436 464 467 478 491 500 705 724 827 942 961 962 995
#include <iostream> #include <fstream> #include <time.h> #include <random> using namespace std; void SwapSort(int *Arr, int N) { for (int i = 0; i < N - 1; ++i) { for (int j = i + 1; j < N; ++j) { if (Arr[i] > Arr[j]) { int tmp = Arr[i]; Arr[i] = Arr[j]; Arr[j] = tmp; } } } } int Fun(int *Arr, int N) { int Count = 0; SwapSort(Arr, N); for (int i = 0; i < N; ++i) { cout << Arr[i]<<" "; } int *Brr = new int ; for (int i = 0; i<N;++i) { if (Arr[i] != Arr[i+1]) { Brr[i] = Arr[i]; } else { for (int j = i; j < N-1; ++j) { Arr[j] = Arr[j+1]; } ++Count; } } return N-Count+1; } int main() { int N = 0; cin >> N; int *Buf = new int ; // 用当前时间来产生随机数种子,这样每次用本程序产生的随机数序列 将不同,更随机。 //srand((unsigned)time(NULL)); for (int i = 0; i < N; i++) { Buf[i] = rand() % 1000; } /*c语言方式存入文件*/ //FILE *fp; //fp = fopen("in.txt", "w"); //打开文件 //for (int j = 0; j < N; j++) //{ // fprintf(fp, "%4d", Buf[j]); //} //fclose(fp); //关闭文件 /*c++方式存入文件*/ ofstream out("in.txt"); if (out.is_open()) { out << N<<endl; for (int j = 0; j < N; j++) { out << Buf[j]<<" "; } out.close(); } int Count = 0; Count = Fun(Buf, N); ofstream out1("out.txt"); if (out1.is_open()) { out1 << Count<<endl; for (int j = 0; j < Count; j++) { out1 << Buf[j] << " "; } out1.close(); } delete[]Buf; return 0; }
3、要给N个人分组如[1,2],[3,9],[10,12],....,[x,N];输入M个人的序号,对应输出每个人所对应的组号。
输入示例:
5 //分为5组
2 7 3 4 9 //每组的人数
3 //3人
1 25 11 //各个人的序号
输出示例:(输出3个人对应的组号)
1
3
5
#include <iostream> #include <random> using namespace std; void Fun(int *Arr, int N, int *Brr, int M) { // 0 1 2 3 4 // arr 2 7 3 4 9 // brr 1 25 11 // ans 1 5 3 for (int i = 0;i<M;i++) { int Temp = Arr[0]; int Count = 1; for (int j = 0;j<N;j++) { if (Brr[i] <= Temp)//说明在该分组 { Brr[i] = Count; break; } else//说明不在同一个分组中 { Temp += Arr[j + 1]; ++Count; } } } } int main() { int N = 0; cin >> N; int *Arr = new int ; for (int i = 0; i < N; ++i) { cin>>Arr[i]; } int M = 0; cin >> M; int *Brr = new int[M]; for (int j = 0; j < M; ++j) { cin>>Brr[j]; } Fun(Arr, N, Brr, M); for (int k = 0; k < M; ++k) { cout << Brr[k] << endl; } delete[]Arr; delete[]Brr; return 0; }
相关文章推荐
- 链家、CVTE笔试题
- 2016年链家网校招笔试(JAVA研发)
- 链家笔试链家——找寻最小消费获取最大平均分java
- 链家秋招内推编程笔试题目
- 链家笔试:斐波那契数列中的第k个数
- 2018链家笔试编程题
- 补充,上次链家笔试的0-1背包问题
- 链家笔试:素数打表
- 链家笔试题--java实现两个大整数相乘的算法
- 链家笔试算法题
- 链家笔试题整理
- 链家、美团点评测试岗位笔试总结
- 2018链家校招内推-大数据开发工程师笔试编程题
- 链家2018招聘京外笔试题(Android研发工程师)
- 【链家笔试题】问卷调查
- 【链家笔试题】部队分组
- 链家笔试题总结
- 【链家笔试】摘苹果
- 百度武汉站笔试题——算法题第一第二题Java实现
- 360校园招聘2015届技术类笔试题(一)