在不使用if,while,do...while,for,switch,?:等操作,实现函数void printLess(int k),返回小于k的所有整数

来源:互联网 发布:太阳能电池知乎 编辑:程序博客网 时间:2024/06/01 12:09
这个题为2014网易C++笔试题,考得很烂,这题现场没做出来,只想到是用递归,但是怎么递归就不知道了。网上搜了一下,方法有两种,一种是用类的方式实现,一种是用&& 或||运算符来实现。

类实现方式:通过类的构造函数来实现小于k的整数输出

class test{ 

    public: static int k; 

      test(){ cout<<k<<endl; } 

}

int test::k=1;

void printLess(int k)

     test t[k-1];

}

&&或||运算符实现:&&、||的运算规则是左边的值可以确定整个式子的值,则不进行右边式子的运算

所以可以使用递归实现

void printLess(int k)

      printf("%d",k-1);

      (k-1)&&printLess(k-1);

}


原创粉丝点击