INTERVIEW #2
吐槽下ZZ的面试安排:面试时间12:30不说了,周围没有饭店,中午就没吃饭。。。不像其他公司给每个人安排不同的面试时间,这样可以节约大家的时间,SPDB是把一大批人都安排在了12:30,而且面试是5个面试官对一个人,生生地把可以并行的工作给整废了,大部分时间都浪费在了无意义的等待上。
一、机试
50min三道题,考察地很基础,基本之前都练过。利用的是华科的OJ:http://hustoj.com/oj/,IDE有Dev-C++、Eclipse、PyCharm,Dev-C++没太用过,所以调试得很慢很慢。。。
1、十进制转二进制(http://acm.hdu.edu.cn/showproblem.php?pid=2051)
“除基取余,逆序排列”。每次将要转换的数除以基数Q,将余数作为低位存储直到商为0,将所有位由高到低输出即可。
#define _CRT_SECURE_NO_WARNINGS #include <cstdio> int main()
{
int n;
while (scanf("%d", &n) != EOF)
{
int len = , num[];
do {
num[len++] = n % ;
n /= ;
} while (n);
for (int i = len - ; i >= ; i--)
printf("%d", num[i]);
printf("\n");
} return ;
}
之所以用do...while循环,是因为如果输入为0,用while会直接跳出循环,结果出错。
2、求出200以内所有3的倍数的数字和
没啥好说的。
#define _CRT_SECURE_NO_WARNINGS #include <cstdio> int main()
{
int sum = ;
for (int i = ; i < ; i++)
{
if (!(i % ))
{
sum += i;
}
} printf("%d\n", sum); return ;
}
3、质因子分解(https://pintia.cn/problem-sets/994805342720868352/problems/994805415005503488)
这题寒假练过,不过机考时候忘了,素数表打的好像有问题。。。幸亏测试数据弱,就手工写了一个数组存了前面20个素数,结果AC了。。。
- 如果一个正整数n是一个合数,那么它的因子必然是在$\sqrt n$左右两侧成对出现;
- 推广到质因子,如果n存在[2,n]内的质因子,那么这些质因子要么全部小于等于$\sqrt n$,要么只有一个大于$\sqrt n$,其余都小于等于$\sqrt n$。
所以算法是:
1)枚举1~$\sqrt n$内的所有质因子,判断其是否是n的因子;
2)如果1)结束后$n>1$,那么其必然有且仅有一个大于$\sqrt n$的质因子,记录该因子;
3)输入是1要特判。
#define _CRT_SECURE_NO_WARNINGS #include <cstdio>
#include <cmath> const int maxn = + ; //如果是int范围,数组开10足够了,
//因为2*3*5*7*11*13*17*19*23*29就超过int了,所以我手工写一个数组也足够了。。。
struct fac {
int x;
int cnt; //质因子x的个数
}fac[]; bool isPrime(int a)
{
if ( == a)
return false; int sqr = sqrt(1.0*a);
for (int i = ; i <= sqr; i++)
{
if (!(a % i))
return false;
}
return true;
} int prime[maxn], num = ;
//打素数表
void primeTable()
{
for (int i = ; i < maxn; i++)
{
if (isPrime(i))
{
prime[num++] = i;
}
}
} int main()
{
primeTable(); //记得写,我好像没写这句。。。 long long n;
int diffFacNum = ; //n的不同质因子个数
scanf("%lld", &n);
printf("%lld=", n); if ( == n) //特判1
printf(""); else
{
int sqr = sqrt(1.0*n); //枚举2~sqrt(n)的质因子
for (int i = ; prime[i] <= sqr; i++)
{
if (n % prime[i] == ) //如果该质因子是n的因子
{
fac[diffFacNum].x = prime[i];
fac[diffFacNum].cnt = ;
//计算该质因子的个数
while (n % prime[i] == )
{
fac[diffFacNum].cnt++;
n /= prime[i];
}
diffFacNum++;
} if ( == n)
break;
} //必有一个大于sqrt(n)的质因子
if (n != )
{
fac[diffFacNum].x = n;
fac[diffFacNum++].cnt = ;
} for (int i = ; i < diffFacNum; i++)
{
if (i > )
printf("*"); printf("%d", fac[i].x);
if (fac[i].cnt > )
{
printf("^%d", fac[i].cnt);
}
} } return ;
}
二、面试
面试期间也被问到了一道题:
大致意思就是有一个正整数n,找出一个比n大且每位数字之和=n的每位数字之和的最小数,比如输入050,那么输出104。
我开始的思路是从n开始向上枚举,直到找到满足要求的数;
其实更优的解法是:对于在050~099之间的数根本不用考虑,因为必然不满足每位数字之和=n的每位数字之和,这样可以提高效率。
三、其它
1、语言:Java多态、C的数据类型;
2、数据结构:链表是否有环(烂大街了);
3、操作系统:进程状态及转换、进程线程区别。
INTERVIEW #2的更多相关文章
- Pramp mock interview (4th practice): Matrix Spiral Print
March 16, 2016 Problem statement:Given a 2D array (matrix) named M, print all items of M in a spiral ...
- WCF学习系列二---【WCF Interview Questions – Part 2 翻译系列】
http://www.topwcftutorials.net/2012/09/wcf-faqs-part2.html WCF Interview Questions – Part 2 This WCF ...
- WCF学习系列一【WCF Interview Questions-Part 1 翻译系列】
http://www.topwcftutorials.net/2012/08/wcf-faqs-part1.html WCF Interview Questions – Part 1 This WCF ...
- Amazon Interview | Set 27
Amazon Interview | Set 27 Hi, I was recently interviewed for SDE1 position for Amazon and got select ...
- Java Swing interview
http://www.careerride.com/Swing-AWT-Interview-Questions.aspx Swing interview questions and answers ...
- Pramp - mock interview experience
Pramp - mock interview experience February 23, 2016 Read the article today from hackerRank blog on ...
- 【Codeforces 738A】Interview with Oleg
http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...
- [译]Node.js Interview Questions and Answers (2017 Edition)
原文 Node.js Interview Questions for 2017 什么是error-first callback? 如何避免无止境的callback? 什么是Promises? 用什么工 ...
- WCF学习系列三--【WCF Interview Questions – Part 3 翻译系列】
http://www.topwcftutorials.net/2012/10/wcf-faqs-part3.html WCF Interview Questions – Part 3 This WCF ...
- WCF学习系列四--【WCF Interview Questions – Part 4 翻译系列】
WCF Interview Questions – Part 4 This WCF service tutorial is part-4 in series of WCF Interview Qu ...
随机推荐
- spring-cloud feign的多参数传递方案
查看原文 一.GET请求多参数URL 1.方法一(推荐) @FeignClient(“microservice-provider-user”) public interface UserFeignCl ...
- java京东自动登录
大部分代码都是参考的这边,我只是在他的逻辑上实现了自动通过验证码,放上主逻辑的代码吧,图片识别我用的若快,可以去接其他平台 https://blog.csdn.net/u013232789/artic ...
- "为文本添加下划线"组件:<u> —— 快应用组件库H-UI
 <import name="u" src="../Common/ui/h-ui/text/c_tag_underline"></impor ...
- Python设计模式(7)-建造者模式
# coding=utf-8 class Report: def create_head(self): pass def create_body(self): pass class year_Repo ...
- spark sql error mismatched input 'union' expecting { <EOF>,''................................
给union的前后sql加括号就可以解决
- Android调用系统设置
最近,弄了一下,调用系统设置的方法,Android4.0的系统,下面的所有设置项,都亲测可以调用.首先调用的方式如下: Intent mintent_setting_time = new Intent ...
- atom跨平台超好用的markdown实时预览
https://atom.io/ sublime有预览markdown的插件,但仅限于每次在浏览器中预览,想要找一个能够实时在软件中预览的,终于发现了atom. 很多功能以插件的形式安装,theme也 ...
- [转载]利用分块传输绕过WAF进行SQL注入
原理 客户端给服务器发送数据的时候,如果我们利用协议去制作payload,就可以绕过http协议的waf,实现SQL注入 分块传输编码(Chunked transfer encoding)是HTTP中 ...
- [PHP][mysql] 需要知道的那些事
就是想总结一下自己不会的! sql: 1.在SQL语句中出现AS,是起别名的意思! 例子:select a.* from table_1 as a就是给table_1起个别名叫a,因此前面就可以使用a ...
- spark 集群优化
只有满怀自信的人,能在任何地方都怀有自信,沉浸在生活中,并认识自己的意志. 前言 最近公司有一个生产的小集群,专门用于运行spark作业.但是偶尔会因为nn或dn压力过大而导致作业checkpoint ...