腾讯面试真题(C语言)

简介: 腾讯面试真题(C语言)

一.题目

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

二.题目剖析

首先题目要求不能用乘除,那么(首相+末项)*项数/2就不能用,其次不能用循环,最后不能用条件语句,开关语句和条件运算符,那么想要求一个位置长度的数列和就一定要让操作数“动起来”,想来想去也就只有递归还能试一试了,但递归要有限制条件,不过这个条件不能用条件语句和条件运算符来表现,那么只能想想其他的逻辑运算符,好像也只有用逻辑运算符的短路特性,才能限制递归。

三.代码实现

static int a = 0;
int fun(int n)
{
  int x = (n) && (fun(n - 1));
  return a += n;;
}
int main()
{
  int n;
  scanf("%d", &n);
  printf("%d", fun(n));
  return 0;
}

四.代码剖析

首先定义一个全局变量a(或者在函数内部定义一个静态变量a),这两种做法都行,目的是为了防止函数在被调用完一次后变量a被初始化,然后利用逻辑与运算短路的特性(如果左操作数为0,将不再计算右操作数),这样如果把递归式放到右操作数,这样如果左操作数为0,递归就会结束。

相关文章
|
5月前
|
C语言
C语言操作符逻辑与,逻辑或面试真题(2)
C语言操作符逻辑与,逻辑或面试真题(2)
|
6月前
|
Java Linux 程序员
Linux平台中调试C/C++内存泄漏方法 (腾讯和MTK面试的时候问到的)
Linux平台中调试C/C++内存泄漏方法 (腾讯和MTK面试的时候问到的)
|
8月前
|
SQL 算法 关系型数据库
python技术面试题(十九)--腾讯
python技术面试题(十九)--腾讯
|
2月前
|
存储 C语言
c语言中strlen与sizeof的区别(指针面试题详解帮你深度区分!)
c语言中strlen与sizeof的区别(指针面试题详解帮你深度区分!)
|
6月前
|
设计模式 算法 网络协议
社招offer-腾讯T9-70W年薪(面试经验分享)(上)
社招offer-腾讯T9-70W年薪(面试经验分享)
|
3月前
|
安全 算法 数据安全/隐私保护
腾讯面试官:工作两年了,这么简单的cisp题你都不会?
注册信息安全专业人员,是经中【国信息安全产品测评认证中心】实施的国家【认证】,对信息安全人员执业资质的认可。该证书是面向【信息安全】企业、信息安全咨询【服务机构】、信息安全【测评机构】、【政府机构】、社会各组织、团体、大专院校以及企事业单位中负责信息系统建设、运行维护和管理工作的信息安全专业人员所颁发的专业资质证书。
75 0
腾讯面试官:工作两年了,这么简单的cisp题你都不会?
|
3月前
|
算法 编译器 C语言
C语言面试考点之二
C语言面试考点之二
14 0
|
5月前
|
存储 NoSQL 中间件
[中间件~大厂面试题] 腾讯三面,40亿的QQ号如何去重
[中间件~大厂面试题] 腾讯三面,40亿的QQ号如何去重
|
5月前
|
设计模式 算法 Java
腾讯Java高级岗180道面试真题,面试大厂拿45Koffer没问题!
一、数据结构与算法基础 · 说一下几种常见的排序算法和分别的复杂度。 · 用Java写一个冒泡排序算法 · 描述一下链式存储结构。 · 如何遍历一棵二叉树? · 倒排一个LinkedList。 · 用Java写一个递归遍历目录下面的所有文件。
|
5月前
|
Linux 应用服务中间件 数据库
Linux 面试题-(腾讯,百度,美团,滴滴)
Linux 面试题-(腾讯,百度,美团,滴滴)
49 0