2026年华为研发工程师面试问题解答.docxVIP

  • 0
  • 0
  • 约7.3千字
  • 约 24页
  • 2026-03-25 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年华为研发工程师面试问题解答

一、编程语言基础(5题,每题2分,共10分)

1.题目:

请用C++实现一个函数,判断一个整数是否为素数。要求时间复杂度为O(√n)。

答案:

cpp

boolisPrime(intn){

if(n=1)returnfalse;

if(n=3)returntrue;

if(n%2==0||n%3==0)returnfalse;

for(inti=5;ii=n;i+=6){

if(n%i==0||n%(i+2)==0)returnfalse;

}

returntrue;

}

解析:

-基础判断:小于等于1的数不是素数,2和3是素数。

-排除偶数和3的倍数,减少后续计算量。

-从5开始,以6为步长遍历(i和i+2),因为所有素数(3)都在6k±1形式上。

-终止条件为ii=n,避免不必要的乘法计算。

2.题目:

请解释Java中的`volatile`关键字的作用,并说明它与`synchronized`的区别。

答案:

`volatile`关键字确保变量的可见性和有序性,但不保证原子性。

-可见性:线程修改后,其他线程能立即感知。

-有序性:禁止指令重排序,保证代码执行顺序。

文档评论(0)

1亿VIP精品文档

相关文档