网易2017运维工程师笔试题(程序题)——山寨题解
来源:互联网 发布:virtualbox装ubuntu 编辑:程序博客网 时间:2024/04/29 14:01
第一题
题意:某人想买n个苹果,水果摊只有6个一袋和8个一袋两种售卖方式,问是否能按袋买进正好凑足n个,如果可以,输出最少包数,不可以则输出-1。
题解:跟蓝桥杯初赛题目难度类似。排列问题,n规模很小,不超过100,深搜一下,每层递归保存剩余苹果数目,先尝试放8个,如果无解再尝试放6个,到某层如果剩余数目为0则满足条件,输出层数后返回。
代码:
#include <cstdio>#include <stack>#include <iostream>#include <algorithm>using namespace std;int _stack[100], top;bool dfs(int rest, int k){ if(rest < 0) return false; else if(rest == 0) { printf("%d\n", k); return true; } _stack[k] = 8; if(dfs(rest - 8, k + 1)) return true; _stack[k] = 6; if(dfs(rest - 6, k + 1)) return true; return false;}int main(){ int n; cin >> n; if(!dfs(n, 0)) printf("-1\n"); return 0;}
第二题
题意:给出圆的半径的平方(整数)n,求落在圆上的横纵坐标均为整数的点的数目。
题解:从0开始枚举横坐标点,平方后和n作差,判断纵坐标是否为平方数,如果是则计数。最终数乘以4就接近答案了(相当于枚举的是1/4圆上的点),需要注意的是横坐标轴上如果存在点则需要减去一次,不然会多出4。
代码:
#include <cstdio>#include <algorithm>#include <cmath>#include <iostream>using namespace std;typedef long long lint;const double eps = 1e-6;int main(){ int r2, o = 0, e = 0; lint rst; cin >> r2; for(int i = 0, k; (lint)i * i <= (lint)r2; i++) { rst = (lint)r2 - (lint)i * i; k = int((sqrt(double(rst)) + eps)); if((lint)k*k == rst) { //printf("%d %d\n", i, k); o++; if(!k) e++; } } cout << (o - e) * 4 << endl; return 0;}
第三题
题意:给出一个整数n,求1到n所有数的最大奇数因子的和。
题解:这n个数可以按照含2因子的次数分类(不超过30类),用n / 2^i就可以求出含有2^i的最大奇数k,加上[1, k]内的奇数即可,由于是等差数列可以用公式算出。
代码:
#include <cstdio>#include <iostream>using namespace std;typedef long long lint;int gg[50];int main(){ for(int i = 0; i <= 30; i++) gg[i] = (1 << i); /// [gg[0], gg[30] ] int N; cin >> N; lint o = 0; for(int i = 0, j, k; i <= 30; i++) { j = N / gg[i]; if(j == 0) continue; if(j % 2 == 0) j--; k = j / 2; o += ((lint)(1 + j) * j / 2) - (2 * (lint)(1 + k) * k / 2); } cout << o << endl; return 0;}
0 0
- 网易2017运维工程师笔试题(程序题)——山寨题解
- 网易游戏2010运维工程师笔试题
- 2014网易运营工程师笔试题(邮件运维)
- 网易程序笔试题
- 2017网易内推c++工程师笔试——编程题
- 网易内推笔试题2017机器视觉算法工程师
- 网易2017实习生招聘笔试题 C++开发工程师
- 2017网易游戏测试工程师-实习招聘在线笔试题
- 2015网易Java开发工程师(技术架构)笔试题
- 网易2016研发工程师笔试题(二)
- 数字游戏----网易2016研发工程师笔试题(二)
- 2008网易游戏开发工程师笔试题
- 2008网易游戏开发工程师笔试题
- 2014网易运营工程师笔试题
- 网易2016研发工程师笔试题
- 网易2017内推笔试程序题
- 网易2017校园招聘笔试程序题(分田地)
- 网易运维笔试题
- linux mysql 破解root 密码
- HDU 5874 Friends and Enemies
- oradim命令的使用
- Android api level对照表
- 【python】对文件的读写文件
- 网易2017运维工程师笔试题(程序题)——山寨题解
- CentOS 7下LAMP源码安装(4)安装PHP
- a++与++a区别
- Android Service完全解析
- C#控制台基础 File.AppendAllText,以追加的方式,即不改变txt中的原有内容,在后面添加一个string的内容
- 安装和配置VNC服务器的法则
- python小技巧——enumerate,operator和Counter
- MongoDB之$in的用法
- 侧滑菜单DrawerLayout的用法