腾讯技术岗面试题解析.docxVIP

  • 2
  • 0
  • 约5.87千字
  • 约 18页
  • 2026-03-11 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年腾讯技术岗面试题解析

一、编程基础(5题,每题10分,共50分)

1.题目:请用C++实现一个函数,输入一个正整数n,返回n的阶乘。要求考虑大数问题,不能直接使用标准库的longlong类型。

答案:

cpp

stringfactorial(intn){

if(n==0)return1;

stringresult=1;

for(inti=2;i=n;++i){

stringtemp=;

intcarry=0;

for(intj=result.size()-1;j=0;--j){

intsum=(result[j]-0)i+carry;

temp.push_back((sum%10)+0);

carry=sum/10;

}

while(carry){

temp.push_back((carry%10)+0);

carry/=10;

}

reverse(temp.begin(),temp.end());

result=temp;

}

returnresult;

}

解析:

-大数阶乘无法用常规整数类型表示,需用字符串模拟乘法。

-从低位到高位逐位相乘,处理进位。

-时间复杂度O(nm),m

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档