1. 问题
实现一个函数,要求再不使用循环的前提下输出 1 ~ 100
2. 思路
很多时候循环可以使用递归来实现,所以只要设置好递归的截止条件就可以。
3. 实现
#include <iostream>
void output(int n)
{
if (n <= 100)
{
std::cout << n << std::endl;
output(++n);
}
}
int main()
{
output(1);
return 0;
}
类似问题
递归乘法。 写一个递归函数,不使用 *
运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。
class Solution {
public:
int multiply(int A, int B) {
if (A == 0 || B == 0)
{
return 0;
}
if (A < B)
{
return multiply(A-1, B) + B;
}
return multiply(A, B-1) + A;
}
};