2015年阿里研发工程师实习笔试选择题

投递了阿里的C/C++方向研发,参加在线笔试时完全懵了,各种数学题、智力题,以及各种看似风马牛不相及的题目在一起,各位感受下.

题目中涉及到排列组合 基本数学问题等.下面关于以上部分题目给出自己的意见,如果有不对的地方,希望各位指正.

关于数N!有多少个零

思路:给定一个整数N,那么N的阶乘N!末尾有多少个0的问题可以转换为N!乘式中可以分解出多少个5的问题.因为5和其前面的任何一个偶数相乘都会产生0,所以只需求出在由1到N的数中共可以分解出多少个5.例如25!,可以分解出5(1×5)、10(2×5),15(3×5),20(4×5)25(5×5),共可以分解出6个5,所以25!末尾有6个0;

由此可以推知15!最后有3个0…

当然特殊的情况需要注意,比如数字是100,1000这样的情况,还有50,500这样的情况,楼主稍加思考不难得出正确的结论。

例如10!=10×9×8×7×6×5×4×3×2×1=2×5×9×8×7×6×5×4×3×2×1(含2个5,所以结果末尾有两个0)

/*
  Name: n!.cpp
  Copyright: 52coder.net
  Author: HeHe.wang
  Date: 03-04-15 10:58
  Description: 程序用户确定N!(n的阶乘结果有多少个0)
*/
#include<stdio.h>

int ZeroNum(int n)
{
    int j,num=0;
    for(int i=n;i>1;i--)
    {
            j=i;
            while(j%5==0)
            {
               num++;
               j/=5;
            }
    }

    return num;
}
int main()
{
    int n=100;
	printf("%d",ZeroNum(n));
}

问题二:0-999999中任何一位都不包含数字1的数字个数:

看到这题第一遍我就在百度、google,不过没有任何发现,我想现在如果在百度的话应该会有发现.

一开始我写了下面的程序求0-999999中任何一位都不包含数字1的数字个数

我的思路是求出0-999999含有1的个数,然后999999减去含有1的数字

因为计算是从0-999999,所以最后计算的时候是n+1-count

实际上使用排列组合更简单9×9×9×9×9×9=531441

#include <stdio.h>

int count(int n)
{
    while(n!=0)
    {
        if(n%10==1)
            return 1;
        n/=10;
    }
    return 0;
}

int main()
{
    int icount=0;
    int n;
    scanf("%d",&n);
    for(int i=0;i<=n;i++)
    {
        icount+=count(i);

    }
    printf("%d\n", n+1-icount);
}

其余的几道题排列组合相对比较简单,真正考c/c++的题不多,我居然没想到把代码复制到编译器里运行一遍,而是自己运算,我还是太单纯了呀.欢迎各位留言讨论,指出有错的地方.

时间: 2024-08-02 00:00:31

2015年阿里研发工程师实习笔试选择题的相关文章

2015年阿里研发工程师实习在线笔试题

投递了阿里的C/C++方向研发,昨天晚上参加在线笔试时完全懵了,各种数学题.智力题,以及各种看似风马牛不相及的题目在一起,各位感受下. 题目中涉及到排列组合 基本数学问题等.下面关于以上部分题目给出自己的意见,如果有不对的地方,希望各位指正. 关于数N!有多少个零 思路:给定一个整数N,那么N的阶乘N!末尾有多少个0的问题可以转换为N!乘式中可以分解出多少个5的问题.因为5和其前面的任何一个偶数相乘都会产生0,所以只需求出在由1到N的数中共可以分解出多少个5.例如25!,可以分解出5(1×5).

2015阿里前端工程师在线笔试整理

昨天下午参加了阿里前端的笔试,题目是随机的,但好像越到后面题目越难.建议小伙伴们还是尽早参加. 总体来说,题目不算很难,有时间都是可以做出来的,总共11道题,6道单选,3道填空,两道大题吧.一个小时时间略少,加上我本来想直接在上面敲代码的,然后发现太慢了,所以又改成了sumlime. 单选题有一道问无序列表是什么元素,一紧张的我竟然选了<ol>....考完才反应过来的我心都要碎成渣了 最后,有一道大题没写,一道填空和一道大题没写完.在这篇文章中进行完善吧. 1.找出页面中所有宽度和高度大于40

阿里c/c++研发工程师实习面试

1. 自我介绍 1)自己的简单情况:姓名,年龄,毕业院校,专业,兴趣爱好.性格特点等 2)优点与长处:技能.获奖.专业知识.学术背景等 3)对应聘职位的想法和规划:对该职位的理解.自己具备什么条件来做好这份工作 4)结束语:我希望得到这份工作,我一定会尽自己所能为企业的发展做出贡献 2. 根据自我介绍提一些问题 2.1 介绍一个自己写的c/c++小程序,说了个动态规划的,提问动态规划的实际应用场景 答:布隆过滤器 3.之后根据简历来提问 3.1 linux下网络编程的 3.1.1 tcp的连接建

阿里2015秋招 研发工程师

平均每个人逗留时间为20分钟,那么开场前20分钟一共来了400人,且有20个人逗留时间已经到,但他们不一定出去,注意是平均时间,所有博物馆最少应该容纳500人 双向循环列表,从任何一个元素开始可以遍历全部元素 先和后面的元素相连 s->next=p->next; p->next->prev=s->next; 在前面的元素相连 p->next=s; s->pre=p; 答案显而易见 画图可以实现 时间轮转为1秒 A 24 B 20 C 7 D14 总时间为73所以平

笔试-2020阿里巴巴研发工程师JAVA笔试考试凉经(虽然觉得自己会凉,但是还是有一些失落)

感悟:昨晚改BUG搞太晚了,早上9点笔试,然后定的8点闹钟,关闹钟后说眯一会,然后梦中被吓醒,一看时间8.58了... 总共2道编程题,有点难.... 1.给你n个数,要求min(a[1, i -1 ]) >  a[i] > max(a[i +1, n])且min(a[1, i - 1]) 是max(a[i +1, n])的整数倍,求这样数的个数 比荷兰国旗问题复杂吧,我是暴力求解的,TLE了,然后我事后搜Leetcode上说 bitree的解法 ,但是也没给清楚,不想了,难受 2.n*m的数

阿里巴巴-2015秋招研发工程师附加题

public static void main(){     int box=500000;    string User;    try    {    for(int i=1;i<32767;i++)    {        if(user[i].getPoint>99 && user[i].getNBox()=0)        {            box--;            user[i].setNBox()=1;            user[i].s

2015年阿里实习生面试Java研发工程师 小记

5月5日,广州,阿里实习生面试,Java研发工程师,完全被虐orz 几乎没有Java项目开发经验,接近零基础,去水了一发,毫无悬念的被刷了..RP也是杠杠的,准备过的题目一个都没被问到,算法题也是一条也没出orz,面试官貌似不知ACM是何物,GG了..不过这次面试收获还是挺大的.. 面试前: 出地铁的时候感觉每个年轻人都是去阿里面试的,快到酒店的时候此感更强烈,果然上电梯的时候就认识了两个从湖南过来面阿里的大三师兄,一个产品一个安卓开发,都好厉害,安卓开发的还已经拿了两个offer,其中一个是小

2015腾讯暑期实习笔试题目

2015腾讯暑期实习笔试题目 (1).层次遍历序列为ABCDEFG的二叉树,其中序遍历的序列是什么? (2).ABCABC为入栈的顺序,倘若出栈的顺序为ABCCBA,那么,设栈的操作为PUSH和POP,则PUSH和POP的可能序列是什么? (3).使用顺序数组存储堆,90,31,53,23,16,48:16,31,23,90,53,48:这两个序列是否符合堆的定义. (4).稀疏矩阵的存储结构可以是什么? (5).根据后序遍历和中序遍历的序列,如何恢复此二叉树. (6).Linux常用命令:ls

专访阿里资深研发工程师窦贤明:PG与商业数据库差距并不明显

窦贤明认为, 支持类型.功能和语法丰富,性能优良 9月24日,窦贤明将参加在北京举办的线下活动,并做主题为<Greenplum分片案例分析>的分享.值此,他分享了PG.工作上的一些经历和经验. 想和这些大咖面对面聊PG吗?点击这里>>>免费报名 正文: 和大部分人一样,窦贤明也是被PG吸引过去的.有点特别的是,他之前完全不是做数据库的,“云计算刚刚兴起,分布式方兴未艾时,我一头扎了进去.”而和PG的结缘,也很巧合,“后来分布式数据库有紧急的工作需要去支持一下,然后就接触到了P