两个面试题-仅供娱乐,切勿模仿
代码包括两个题
1. 返回两个int型数中的较大者,不准用关系运算符,不准用if, while, for等语句
2. 一句代码求字符串长度

1 #include <iostream>
2 using namespace std ;
3
4 // return the sign of a number, 0 for '+', 1 for '-'
5 int signof(int num)
6 {
7 return unsigned(num) >> (sizeof(int) * 8 - 1) ;
8 }
9
10 // compare two numbers without using relational operators, return the max number
11 int MaxNum(int a, int b)
12 {
13 int p[2] = {a, b} ;
14 return p[signof(a - b)] ;
15 }
16
17 // one clause to return the length of a string
18 unsigned int StrLen(char *s)
19 {
20 return s == NULL || *s == '\0' ? 0 : StrLen(s + 1) + 1 ;
21 }
22
23 int main(void)
24 {
25
26 cout << MaxNum(10, -1) << endl ;
27
28 char *p = "hello world" ;
29 cout << StrLen(p) << endl ;
30
31 system("pause") ;
32 return 0 ;
33 }
2 using namespace std ;
3
4 // return the sign of a number, 0 for '+', 1 for '-'
5 int signof(int num)
6 {
7 return unsigned(num) >> (sizeof(int) * 8 - 1) ;
8 }
9
10 // compare two numbers without using relational operators, return the max number
11 int MaxNum(int a, int b)
12 {
13 int p[2] = {a, b} ;
14 return p[signof(a - b)] ;
15 }
16
17 // one clause to return the length of a string
18 unsigned int StrLen(char *s)
19 {
20 return s == NULL || *s == '\0' ? 0 : StrLen(s + 1) + 1 ;
21 }
22
23 int main(void)
24 {
25
26 cout << MaxNum(10, -1) << endl ;
27
28 char *p = "hello world" ;
29 cout << StrLen(p) << endl ;
30
31 system("pause") ;
32 return 0 ;
33 }
其实第一题也可以用一句代码实现
1 int MaxNum(int a, int b)
2 {
3 return (a - b) >> (sizeof(int) * 8 - 1) ? b : a ;
4 }
5
2 {
3 return (a - b) >> (sizeof(int) * 8 - 1) ? b : a ;
4 }
5
但凡要求用一句代码实现的题目,基本上都用到三目运算符或者递归
作者:zdd
出处:http://www.cnblogs.com/graphics/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述