本文主要是介绍面试题82:一句先递增打印再递减打印,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
函数int func(int i,int N);
其中i<=N,功能输出i递增到N再递减到i的整数,每行输出一个数。
要求:
1、只能有一个语句,即一个分号。
2、不能使用do while until goto for if 关键字,不能使用?:和逗号运算符。
3、唯一能使用的库函数为printf。
#include <iostream>
#include <algorithm>
using namespace std;int func(int i, int n)
{return (i == n && printf("%d\n", i)) || (printf("%d\n", i) && func(i + 1, n) && printf("%d\n", i));
}int main()
{func(1, 5);return 0;
}
这个代码处理的非常巧妙,退出递归的情况竟然是短路原理。
printf返回的是打印的个数。
这篇关于面试题82:一句先递增打印再递减打印的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!