博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
淘宝笔试题,受限的降序打印
阅读量:7058 次
发布时间:2019-06-28

本文共 803 字,大约阅读时间需要 2 分钟。

写一个函数: int print_num(int k){}; 要求函数功能为打印k的降序,直到0结束,即如果k=5,即打印: 5 4 3 2 1 0

要求: 不能用 if , if else, switch, ?: , while, for , do while, goto 语句 

解法1:利用构造函数和数组

1 class Printer  2 {  3 public:  4  static int counter;  5  Printer()  6  {  7   cout<
<

 

解法2:利用编译器

1 int print_num(int k) 2 { 3  printf("%d",k); 4  k&&print_num(k-1); 5  return k; 6 }

 

1 003C13C4  call        @ILT+310(__RTC_CheckEsp) (3C113Bh)  // 秘诀在这里2     k&&print_num(k-1); 3 003C13C9  cmp         dword ptr [k],0  4 003C13CD  je          print_num+4Eh (3C13DEh)  5 003C13CF  mov         eax,dword ptr [k]  6 003C13D2  sub         eax,1  7 003C13D5  push        eax  8 003C13D6  call        print_num (3C102Dh)

在用if(a&&b)的时候,编译器会主动优化,a为false不会再继续判断b,这儿是一个道理

解法3:?

转载于:https://www.cnblogs.com/byang/archive/2012/08/26/2657449.html

你可能感兴趣的文章
StringBuilder拼接字符串,“,”在前还是在后问题
查看>>
Linux 内核中断内幕【转】
查看>>
队列(queue)
查看>>
jsHint-静态代码检查工具eclipse中使用
查看>>
条件熵
查看>>
如何摆脱工具类
查看>>
Eclipse下配置使用Hadoop插件
查看>>
GAN
查看>>
文件操作
查看>>
Eclipse对于多个Java项目的支持并不友好!
查看>>
Pandas Series数据结构基本操作
查看>>
ubuntu桌面环境配置及切换
查看>>
oracle常用查询三
查看>>
码字定式之SQL(6)
查看>>
命名空间“Microsoft”中不存在类型或命名空间名“Reporting”(是否缺少程序集引用?)...
查看>>
【转】Scheme 编程环境的设置
查看>>
异常分类,异常抛出位置
查看>>
需求分析与原型设计
查看>>
敌兵布阵 HDU - 1166 (树状数组模板题,线段树模板题)
查看>>
Threading and Tasks in Chrome
查看>>