2018京东笔试

相对而言京东的难度有点大,比起网易来说都算是高了很多,总的来说就写出一道题目,且通过率也是不要太低不过感觉第一题还是算有思路的,其他的两道题属于完全没有思路的样子,所以今天就写一下第一道题吧。

第一题 打印出能被小于等于n的所有整数整出的最小的数
这道题在我看来是一个相对简单的题目,看到题的第一反应是所有数整除,那么把所有数相乘得出来得结果不就行了,然而事实并非如此譬如在1到6之间就有4这种异常点,而异常点即为前面数能够整除得数,而乘进去后反而会增大结果得值,所以需要剔除异常点,而该题得解法就变为输出1到n之间所有素数得乘积,理解了题意,随后得解答也就并不是很难了:
 
 
#include<iostream>
using namespace std; long MinInt(long a){ if(a==0) return 0; long i=1; for(long j=1;j<=a;j++){ int flag=0; if(j>3) for(int k=2;k<j;k++){ if(j%k==0) flag=1; } if(flag) continue; else i=i*j; } return i%987654321; } int main(){ long a; while(cin>>a){ cout<<MinInt(a)<<endl; } return 0; }

然而不知道为什么虽然感觉上问题不大,但是依旧只能够过编10%,不知道是不是遗漏了什么点,感觉本地上测试得几个案例答案还是正确的,就很迷茫。还有就是写完该题得时候考试时间还有1个小时10分,然而后面两题竟然完全无从下手,1个小时后屈辱交卷。。。至于另外两题得题目有兴趣得朋友可以自己解一下试试.

第2题 输入一个字符串对于字符串中去除0个到多个字符,判断能够构成回文得方法数量。其中“ABA”“A”等都算回文。
例子
输入“ABA”输出5
输入“AAB”输出4
感觉像是找规律,然而并没有寻找出什么规律。
第3题 马走日问题,寻找马走日在棋盘中能够到达某个点得方法数量,感觉有点像《程序员面试金典》中得机器人走格子得衍生问题,可惜我还没有看到,所以抱歉并不会。。。。
 
嗯总体就这样,难度很大,祝各位下轮笔试成功。

猜你喜欢

转载自blog.csdn.net/u010404530/article/details/79879756