阿牧路泽

哪有那么多坚强,无非是死扛罢了
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

4、【常见算法】一道经典的额递归题目

Posted on 2018-10-15 17:20  阿牧路泽  阅读(256)  评论(0编辑  收藏  举报

函数 int func(int i ,int N);
其中i <= N,功能输出i递增到N再递减到i的整数,每行输出一个数。比如func(1,5)就是
1
2
3
4
5
4
3
2
1
要求:
1、只能有1个语句,即一个分号
2、不能使用do while until goto for if关键字,不能使用?:和逗号运算符
3、唯一能使用的库函数为printf

 1 #include <stdio.h>
 2 
 3 int func(int i, int n)
 4 {
 5     return (i == n && printf("%d\n", i)) || (printf("%d\n", i) && func(i+1, n) && printf("%d\n", i));
 6 }
 7 
 8 int main()
 9 {
10     func(1, 5);
11     return 0;
12 }