网站大量收购闲置独家精品文档,联系QQ:2885784924

华为OD机试真题1-10.pdf

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

华为OD机试真题1-10(JavaScript)

本文档的题目都是真题(非练习题),考到原题的概率很大,

通过的几率也很大。

1.IPV4地址转换成整数

存在一种虚拟IPv4地址,由4小节组成,每节的范围为0~255,以#号间隔,虚拟IPv4地址

可以转换为一个32位的整数,例如:128#0#255#255,转换为32位整数的结果为2147549183

(0x8000FFFF),1#0#0#0,转换为32位整数的结果为(0),现以字

符串形式给出一个虚拟IPv4地址,限制第1小节的范围为1~128,即每一节范围分别为

(1~128)#(0~255)#(0~255)#(0~255),要求每个IPv4地址只能对应到唯一的整数上。如果是非

法IPv4,返回invalidIP

示例:

输入

100#101#1#5

输出

1684340997

输入

1#2#3

输出invalidIP

代码:

letlen=strings.length;

letcount=0;

letisF=true;

if(len==4){

for(leti=0;ilen;i++){

letn=Number(strings[i]);

if(i==0(n1||n128)){//第一节1~128

isF=false;

break;

}elseif(n0||n255){//二、三、四节0~255

isF=false;

break;

}

/**

*首先使用把IP地址分成4个数字:12819923144

*

*把每个数字转换为2进制,如果转换后这个数字对应的二进制数不够8位,在

左侧补0:1100011100101100

*/

count+=n(8*(3-i));

}

}else{

isF=false;

}

if(isF){

console.log(count);

}else{

}

2.素数之积

给定一个32位正整数,请对其进行因数分解,找出是哪两个素数的乘积。

输入描述:一个正整数num,0num=2147483647

输出描述:如果成功找到,以单个空格分割,从小到大输出两个素数,分解失败,请输出-1-1

示例1:

输入

15

输出35

说明:

因数分解后,找到两个素数3和5,使得3*5=15,按从小到大排列后,输出35

示例2:

输入

27

输出

-1-1

说明:

通过因数分解,找不到任何素数,使得他们的乘积为27,输出-1-1

解题思路:

素数:只有1和本身两个约数。对输入值进行分解因子,只有2个因子的符合,其他的都输

出-1-1

代码:

letn=Number(readLine());

letlist=[];

letm=0;

/**

*本题就是求出一个数只有两个因子(1不是素数)

*遍历n求出它所有的因子

*/

while(m!=n){//当n==m时说明已经不能再除了,跳出循环

n=m!=0?m:n;

for(leti=2;iMath.sqrt(n)+1;i++){

if(n%i==0){

m=n/i;//把商作为下次的被除数

list.push(i);//i就是因子

break;

}

}

}

list.push(m);

if(list.length==2){

}else{

-1-

}

3.寻找相同子串

给你两个字符串t和p,要求从t中找到一个和p相同的连续子串,并输出该字串第一

个字符的下标。

输入描述:

输入文件包括两行,分

文档评论(0)

181****2790 + 关注
实名认证
内容提供者

硕士研究生

1亿VIP精品文档

相关文档