一道淘宝面试:不用条件和循环语句

来源:互联网 发布:模拟电网软件 编辑:程序博客网 时间:2024/06/04 19:39

写一个函数: int print_num(int k){}; 要求函数功能为打印k的降序,直到0结束,即如果k=5,即打印: 5 4 3 2 1 0 
要求: 不能用 if , if else, switch, ?: , while, for , do while, goto 语句

思路显然是递归了。

 

#include <iostream>
#include <stdio.h>
using namespace std;

int printk(int n)
{
    cout << n << ' ';
    n && printk(n-1);
    return n;
}

int main(int argc, char *argv[])
{
    int n;
    while (cin >> n)
    {
        printk(n);
        cout << endl;
    }
    
    return 0;
}