腾讯面试真题(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,递归就会结束。

相关文章
|
2月前
|
网络协议 编译器 Linux
【C语言】结构体内存对齐:热门面试话题
【C语言】结构体内存对齐:热门面试话题
|
2月前
|
算法 前端开发 Java
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
这篇文章总结了单链表的常见面试题,并提供了详细的问题分析、思路分析以及Java代码实现,包括求单链表中有效节点的个数、查找单链表中的倒数第k个节点、单链表的反转以及从尾到头打印单链表等题目。
35 1
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
|
6月前
|
存储 安全 编译器
C语言面试题1-10
指针声明后立即初始化。 内存释放后将指针置为NULL。 避免越界访问。 10. 一个指针变量占几个字节? 一个指针变量的大小与系统和编译器相关。在32位系统中,指针变量占4个字节;在64位系统中,指针变量占8个字节。 通过深入了解以上问题,能够更好地掌握C语言内存管理的核心概念,提高编写高效、安全代码的能力。
57 1
|
2月前
|
负载均衡 算法 Java
腾讯面试:说说6大Nginx负载均衡?手写一下权重轮询策略?
尼恩,一位资深架构师,分享了关于负载均衡及其策略的深入解析,特别是基于权重的负载均衡策略。文章不仅介绍了Nginx的五大负载均衡策略,如轮询、加权轮询、IP哈希、最少连接数等,还提供了手写加权轮询算法的Java实现示例。通过这些内容,尼恩帮助读者系统化理解负载均衡技术,提升面试竞争力,实现技术上的“肌肉展示”。此外,他还提供了丰富的技术资料和面试指导,助力求职者在大厂面试中脱颖而出。
腾讯面试:说说6大Nginx负载均衡?手写一下权重轮询策略?
|
7月前
|
数据采集 数据挖掘 关系型数据库
2024年5分钟就能完成的5个Python小项目,赶紧拿去玩玩吧(2),2024年最新腾讯面试题
2024年5分钟就能完成的5个Python小项目,赶紧拿去玩玩吧(2),2024年最新腾讯面试题
2024年5分钟就能完成的5个Python小项目,赶紧拿去玩玩吧(2),2024年最新腾讯面试题
|
2月前
|
Serverless 编译器 C语言
【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)
【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)
|
4月前
|
C语言
C语言操作符(补充+面试)
C语言操作符(补充+面试)
46 6
|
4月前
|
算法 C语言
【面试题】【C语言】寻找两个正序数组的中位数
【面试题】【C语言】寻找两个正序数组的中位数
34 0
|
6月前
|
存储 安全 编译器
C语言面试题11至20题
在C语言中,可以使用以下方式实现循环: for循环:用于确定次数的循环。 for (int i = 0; i < 10; i++) { // 循环体 } while循环:用于条件控制的循环。 while (condition) { // 循环体 } do-while循环:至少执行一次的条件循环。 do { // 循环体 } while (condition); 通过深入理解这些面试题,可以更好地准备编程面试,展示对编程原理和技术细节的深刻掌握。
59 3
|
6月前
|
存储 缓存 C语言
C语言面试题30至39题
. 用变量a给出下面的定义 由于题目未明确定义,这里给出几个常见定义: 整数变量:int a; 字符变量:char a; 浮点变量:float a; 双精度浮点变量:double a; 指针变量:int *a; 通过理解和掌握这些面试题,可以更好地准备编程面试,展示对编程原理和技术细节的深刻掌握。
57 2