【吉比特】G-bits2017技术类岗位编程题
求素数
输入M、N,1 < M < N < 1000000,求区间[M,N]内的所有素数的个数。素数定义:除了1以外,只能被1和自己整除的自然数称为素数
输入描述:
- 两个整数M,N
输出描述:
- 区间内素数的个数
输入
- 2 10
输出
- 4
- #include<iostream>
- #define K 1000001
- using namespace std;
- char p[K+] = {,,}; //数组前三个数 0 1 2 分别为 合数、合数、素数
- int main()
- {
- int i,j;
- for(i = ; i <= K/; ++i) //防止p[i*j]越界
- {
- if(!p[i])
- for(j = ; i*j <=K ; ++j) //判断是否为合数
- p[i*j] = ; //是合数
- }
- int M,N,count;
- cin>>M;
- cin>>N;
- count=;
- for(i=M; i<=N; i++)
- if(!p[i]) //如果p[i]为合数,则跳过,如果为素数,执行count
- count++;
- cout<<count;
- }
分析:
由素数的概念在大于1的整数中,只能被1和自己本身整除的数。
在大于1的整数中,只要类似 m*n 得到的数都不是素数。用 1 表示非素数,用 0 表示素数。则: p[i*j] = 1 即为找出所有的非素数。
K/10 是为了防止 p[i*j] 越界,当然除以20、30也是可以的!
参考资料链接:
最大差值
给定一个未排序的数列,找到此数列在已排序状态下的两个相邻值的最大差值,少于两个值时返回0。例如:给定数列 [1,3,2,0,1,6,8] 则 最大差值为3。注意:请尽量使用时间复杂度为O(n)的方案。
输入描述:
- 第一行输入单个整数N作为数列的大小,第二行输入所有数列中的元素M,共N个。0 < N <= 1000000, 0 < M < 2100000000
输出描述:
- 数列的最大差值
输入
- 3
- 1 10 5
输出
- 5
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- int main(){
- int N;
- while(cin>>N){
- vector<int> array(N);
- for(int i=;i<(int)array.size();++i){
- cin>>array[i];
- }
- sort(array.begin(),array.end()); //先排序
- vector<int> chazhi(N); //开一个数组,存入相邻元素差值
- chazhi[] = ; //数组初始化
- int max_chazhi = ;
- for(int i=;i<(int)chazhi.size();++i){
- chazhi[i]=array[i]-array[i-];
- max_chazhi = chazhi[i]>max_chazhi ? chazhi[i]: max_chazhi;
- }
- cout<<max_chazhi<<endl;
- }
- return ;
- }
分析:
研究了一下别人的代码,整体思路就是先对输入的数列进行从小到大的排序,接着创建一个数组,存入排序后相邻两个数之间的差值,接着再挨个比较大小,最后输出最大差值。
参考资料链接:
【吉比特】G-bits2017技术类岗位编程题的更多相关文章
- 阿里校招内推C++岗位编程题第一题 空格最少的字符串
给定一个字符串S和有效单词的字典D,请确定可以插入到S中的最小空格数,使得最终的字符串完全由D中的有效单词组成.并输出解. 如果没有解则应该输出n/a 例如: 输入: S = “ilikealibab ...
- 【吉比特】G-bits2018校园春季招聘技术类岗位笔试经验
笔试公司:厦门吉比特网络技术股份有限公司 笔试岗位:游戏研发工程师 笔试时间:2018年3月30日19:00-20:30 笔试形式:牛客网在线做题 笔试回忆: 笔试总共时长1小时半,共52道题.其中选 ...
- 2019 吉比特java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.吉比特等公司offer,岗位是Java后端开发,因为发展原因最终选择去了吉比特,入职一年时间了,也成为了面试官 ...
- 最新 吉比特java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.吉比特等10家互联网公司的校招Offer,因为某些自身原因最终选择了吉比特.6.7月主要是做系统复习.项目复盘.LeetCo ...
- 吉比特&雷霆游戏--2020春招实习
笔试 题量较大,仅记了一些印象比较深刻的题. 题型为选择 + 填空(给C++代码填输出结果) + 编程 编程题不会太难,最难的就一道字符串的全排列(类似剑指offer第38题LeetCode链接)可以 ...
- C算法编程题(六)串的处理
前言 上一篇<C算法编程题(五)“E”的变换> 连续写了几篇有关图形输出的编程题,今天说下有关字符串的处理. 程序描述 在实际的开发工作中,对字符串的处理是最常见的编程任务.本题目即是要求 ...
- C算法编程题(五)“E”的变换
前言 上一篇<C算法编程题(四)上三角> 插几句话,说说最近自己的状态,人家都说程序员经常失眠什么的,但是这几个月来,我从没有失眠过,当然是过了分手那段时期.每天的工作很忙,一个任务接一个 ...
- C算法编程题(四)上三角
前言 上一篇<C算法编程题(三)画表格> 上几篇说的都是根据要求输出一些字符.图案等,今天就再说一个“上三角”,有点类似于第二篇说的正螺旋,输出的字符少了,但是逻辑稍微复杂了点. 程序描述 ...
- C算法编程题(三)画表格
前言 上一篇<C算法编程题(二)正螺旋> 写东西前还是喜欢吐槽点东西,要不然写的真还没意思,一直的想法是在博客园把自己上学和工作时候整理的东西写出来和大家分享,就像前面写的<T-Sq ...
随机推荐
- mysql protocol
http://hutaow.com/blog/2013/11/06/mysql-protocol-analysis/ https://dev.mysql.com/doc/internals/en/cl ...
- C#之Console
Console.Write 表示向控制台直接写入字符串,不进行换行,可继续接着前面的字符写入.Console.WriteLine 表示向控制台写入字符串后换行.Console.Read 表示从控制 ...
- python(58):python下划线
详解Python中的下划线 本文将讨论Python中下划线(_)字符的使用方法.我们将会看到,正如Python中的很多事情,下划线的不同用法大多数(并非所有)只是常用惯例而已. 单下划线(_) 通常情 ...
- u3d中刚体与碰撞体的理解以及is Trigger属性的意义
刚体:个人理解就是具有物理属性(如:质量),接受物理作用(如:重力)的组件. 碰撞体:个人理解就是计算碰撞后的物理量(如:弹力). 刚体与碰撞体的关系:个人理解判断碰撞体就是需要计算力,如果碰撞的物体 ...
- FireFox在新标签中打开搜索结果
原文:https://jingyan.baidu.com/article/20b68a88563a1b796cec6228.html 步骤如下: (1)在浏览器的地址栏输入:about:config, ...
- Django admin 继承user表后密码为明文,继承UserAdmin,重写其方法
Django用户继承AbstractUser后密码为明文 其实本不应该有这个问题,却花了我很久的时间,因为还是初学阶段. 造成这个原因是因为在admin注册的生活没有指定Admin 在app的admi ...
- mysql 系统表的作用
mysql 的系统表记录了所有数据库表(包括视图的定义语句)的字段列,顺序,类型等等,知道这些的话可以做些抽取模板淫荡的操作吧 嘿嘿 public void shuaxinglb() { try { ...
- 在构造函数中使用new时的注意事项
果然,光看书是没用的,一编程序,很多问题就出现了-- 注意事项: 1. 如果构造函数中适用了new初始化指针成员,则构析函数中必须要用delete 2. new与delete必须兼容,new对应del ...
- 自己定义View-2-重写onMeasure
效果图 布局文件 <?xml version="1.0" encoding="utf-8"? > <LinearLayout xmlns:an ...
- Django的安装要点
Django 的安装: 安装包: 百度盘里搜索"Django-1.7.tar.gz" 安装环境 WIN7 解压文件 移动到python安装目录下 python setup.py i ...