返回
揭秘拼多多2020校招笔试真题:你的智商够不够?
闲谈
2024-02-10 15:21:08
各位同学,大家好!
眼下正值秋招季,不少互联网大厂的校招笔试题也纷纷浮出水面。今天,我们就来挑战一下拼多多2020年的校招笔试题。听说,不少应届毕业生都折戟在这道题上。那么,你的智商够不够呢?
在正式开讲之前,我们先来了解一下拼多多这家公司。拼多多成立于2015年,总部位于上海,是一家专注于C2M(消费者直连制造商)的电商平台。短短几年时间,拼多多就迅速崛起,成为国内第三大电商平台。
拼多多的校招笔试题向来以难度高、题目刁钻而著称。今天这道题也不例外。题目如下:
给定一个正整数n,求出1到n的所有正整数中,有多少个数字含有数字4。
乍一看,这道题似乎很简单。但是,当n足够大的时候,我们不可能一个个数字去数。那么,有没有什么巧妙的方法可以解决这个问题呢?
其实,我们可以利用数学归纳法来解决这个问题。
基线情况:
当n=1时,1到1中只有一个数字含有数字4,即4。
归纳假设:
假设对于某个正整数k,1到k的所有正整数中,含有数字4的数字个数为f(k)。
归纳步骤:
接下来,我们要证明当n=k+1时,1到k+1的所有正整数中,含有数字4的数字个数为f(k+1)=f(k)+g(k),其中g(k)为k+1中含有数字4的数字个数。
如何求解g(k)?
- 对于1到k的数字,如果k含有数字4,那么k+1也含有数字4。因此,g(k)包括k中含有数字4的数字个数。
- 对于1到k的数字,如果不含有数字4,那么k+1中可能含有数字4,也可能不含有数字4。如果k+1的十位数不为4,那么k+1肯定不含有数字4。如果k+1的十位数为4,那么k+1是否含有数字4取决于k的个位数是否为4。
综合以上分析,我们可以得到:
g(k) = f(k) + (k%10==4 && k/10%10!=4)
因此,我们有:
f(k+1) = f(k) + g(k) = f(k) + f(k) + (k%10==4 && k/10%10!=4)
f(k+1) = 2f(k) + (k%10==4 && k/10%10!=4)
收尾工作:
根据基线情况和归纳假设,我们可以得到:
f(n) = 2f(n-1) + (n%10==4 && (n-1)%10%10!=4)
f(n) = 2^n + Σ(i=1,n-1)(2^(n-1-i)) * ((i)%10==4 && ((i-1)%10%10!=4))
有了这个公式,我们就可以轻松地求出1到n的所有正整数中,有多少个数字含有数字4。
怎么样,这道题是不是没有想象中那么难呢?只要掌握正确的解题方法,相信大家都可以轻松搞定。
最后,祝愿大家秋招顺利!