2017携程后端开发实习生招聘笔试
来源:互联网 发布:隔热断桥铝合金 知乎 编辑:程序博客网 时间:2024/06/01 07:52
一共三个编程题,其中一个是附加题,楼主没时间看了,在第二个题上卡了太久。
1. 乘积最大
有一个整数 n,将 n 分解成若干个不同自然数之和,问如何分解能使这些数的乘积最大,输出这个乘积 m。
第一个题 AC 了。
代码实现
#include <stdio.h> int main() { int in; int res = 1; scanf("%d",&in); int k=2; int a[100]={0}; int i=0; while (in>=k) { a[i++]=k; in-=k; k++; } if (in) { if (in==a[i-1]) { a[i-1]++; in--; } for (int j=0;j<in;j++) { a[i-1-j]++; } } for (int j=0;j<=i-1;j++) { res*=a[j]; } printf("%d",res); return 0; }
第二个题本 zhazha 只找出了无解的情况,wa,25%.
题目如下:
拼图,是一个老少皆宜的益智游戏,在打乱的 3*3 的范围中,玩家只能每次将空格 (0) 和相邻的数字格(上、下、左、右)交换,最终调整出一个完整的拼图。
完整拼图为:
1 2 3
4 5 6
7 8 0
测试数据共 3 行,每行 3 个数字 ,包括数字 0、1、2、3…..8(无重复)还原完整拼图的最少移动次数。如不需要调整,则输出 0;如无解,则输出 - 1。
例如:
0 1 3
4 2 5
7 8 6
依次移动 1,2,5,6,即可还原为正确拼图,移动次数为 4
样例输入:
0 1 34 2 57 8 6
样例输出
4
我只实现了无解的情况:
#include <stdio.h>int isAnswer(int map[]){ int i = 0,j=0; int cnt = 0; for(i = 0; i < 8; i++) for(j = i + 1; j < 9; j++) { if(map[i] > map[j]) cnt++; } for(i = 0; i < 9; i++) { if(map[i] == 0) break; } if(cnt % 2 != i % 2) // 奇偶性不同则无解 { return 0; } else return 1;}int main(){ int map[9]; for (int i=0;i<9;i++) { scanf("%d",&map[i]); } if (!(isAnswer(map))) { printf("-1\n"); } return 0;}
还有一个附加题,没点开看,但是有人说附加题比较简单,失策了。
0 0
- 2017携程后端开发实习生招聘笔试
- 网易2017实习生招聘笔试题 C++开发工程师
- 腾讯2015软件开发实习生招聘笔试
- 华为 2017 实习生招聘笔试题
- 2017腾讯实习生招聘笔试编程题
- 阿里巴巴2017实习生招聘笔试题
- 2017年阿里巴巴实习生招聘笔试
- 实习生招聘笔试
- 实习生招聘笔试
- 腾讯实习生招聘笔试
- 实习生招聘笔试
- 腾讯实习生招聘笔试
- ebay实习生招聘笔试
- 腾讯2017实习生招聘在线笔试编程题(技术类-PC客户端开发)
- 微软2012实习生招聘开发类笔试题
- 2014去哪网春季校园招聘【后台开发实习生】笔试试题
- 2015年腾讯软件开发实习生招聘笔试题
- 今日头条2017后端工程师实习生笔试题
- select下拉框&radio单选按钮数据的回显
- Faster R-cnn 或Caffe hdf5库目录找不到解决办法
- 文章标题
- 【LeetCode笔记】Binary Tree Level Order Traversal II 二叉树按层遍历,反向输出
- php使用Elasticsearch-api之update_by_query操作
- 2017携程后端开发实习生招聘笔试
- 线性判别分析LDA
- 小文件合并存储问题
- IP协议的相关技术
- Roman to Integer
- [C++基础]指针函数与函数指针<详细讲解>
- 笔试面试算法经典--判断二叉树是否是平衡二叉树(Java)
- 一种利用重链剖分优化一类树形动态规划空间复杂度的方法
- Jack-server出错:out of memory error,try increasing heap size