吐槽下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的更多相关文章

  1. 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 ...

  2. WCF学习系列二---【WCF Interview Questions – Part 2 翻译系列】

    http://www.topwcftutorials.net/2012/09/wcf-faqs-part2.html WCF Interview Questions – Part 2 This WCF ...

  3. WCF学习系列一【WCF Interview Questions-Part 1 翻译系列】

    http://www.topwcftutorials.net/2012/08/wcf-faqs-part1.html WCF Interview Questions – Part 1 This WCF ...

  4. Amazon Interview | Set 27

    Amazon Interview | Set 27 Hi, I was recently interviewed for SDE1 position for Amazon and got select ...

  5. Java Swing interview

    http://www.careerride.com/Swing-AWT-Interview-Questions.aspx   Swing interview questions and answers ...

  6. Pramp - mock interview experience

    Pramp - mock interview experience   February 23, 2016 Read the article today from hackerRank blog on ...

  7. 【Codeforces 738A】Interview with Oleg

    http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...

  8. [译]Node.js Interview Questions and Answers (2017 Edition)

    原文 Node.js Interview Questions for 2017 什么是error-first callback? 如何避免无止境的callback? 什么是Promises? 用什么工 ...

  9. WCF学习系列三--【WCF Interview Questions – Part 3 翻译系列】

    http://www.topwcftutorials.net/2012/10/wcf-faqs-part3.html WCF Interview Questions – Part 3 This WCF ...

  10. WCF学习系列四--【WCF Interview Questions – Part 4 翻译系列】

    WCF Interview Questions – Part 4   This WCF service tutorial is part-4 in series of WCF Interview Qu ...

随机推荐

  1. 面试官再问你 HashMap 底层原理,就把这篇文章甩给他看

    前言 HashMap 源码和底层原理在现在面试中是必问的.因此,我们非常有必要搞清楚它的底层实现和思想,才能在面试中对答如流,跟面试官大战三百回合.文章较长,介绍了很多原理性的问题,希望对你有所帮助~ ...

  2. Java时间戳获取

    Java时间戳获取方式: 1:New Date().getTime(); 2: System.currentTimeMillis();区别: New Date().getTime()的底层其实是Sys ...

  3. 浅谈 PCA与SVD

    前言 在用数据对模型进行训练时,通常会遇到维度过高,也就是数据的特征太多的问题,有时特征之间还存在一定的相关性,这时如果还使用原数据训练模型,模型的精度会大大下降,因此要降低数据的维度,同时新数据的特 ...

  4. 【C#】写一个支持多人聊天的TCP程序

    碎碎念 先谈谈我们要实现的效果:客户端可以选择要聊天的对象,或者直接广播消息(类似QQ的私聊和群消息) 那么,该如何实现呢? 首先明确的是,要分客户端和服务器端两个部分(废话) 客户端:选择要发送的对 ...

  5. Apache Hudi 设计与架构最强解读

    感谢 Apache Hudi contributor:王祥虎 翻译&供稿. 欢迎关注微信公众号:ApacheHudi 本文将介绍Apache Hudi的基本概念.设计以及总体基础架构. 1.简 ...

  6. 【FreeMarker】【程序开发】数据模型,对象包装

    [FreeMarker][程序开发]数据模型,对象包装 分类: Java.FreeMarker2014-10-25 18:49 413人阅读 评论(0) 收藏 举报 FreeMarker   目录(? ...

  7. Windows Pains poj 2585

    Boudreaux likes to multitask, especially when it comes to using his computer. Never satisfied with j ...

  8. TortoiseSVN的使用,以及冲突解决办法

    接下来,试试用TortoiseSVN修改文件,添加文件,删除文件,以及如何解决冲突等. 添加文件 在检出的工作副本中添加一个Readme.txt文本文件,这时候这个文本文件会显示为没有版本控制的状态, ...

  9. 1. esc 安装 jenkins

    $ yum install yum-fastestmirror -y #安装自动选择最快源的插件 #添加jenkins源: $ sudo wget -O /etc/yum.repos.d/jenkin ...

  10. python3如何不生成pyc文件

    使用-B参数 即 python3 -B test.py 设置环境变量 export PYTHONDONTWRITEBYTECODE=1 在导入的地方增加 import sys sys.dont_wri ...