给出三个使用递归算法的常见问题示例，并解释递归算法如何解决这些问题。
1. 阶乘问题：通过递归计算给定数字的阶乘。递归解决方案是将该问题分解为更小的子问题，如2的阶乘为2 * 1，而3的阶乘为3 * 2 * 1。递归基线情况是0的阶乘为1。

2. 斐波那契数列问题：计算斐波那契数列的第N个数字。递归解决方案是将该问题分解为计算前两个数字的和的子问题，如第五个斐波那契数是前两个数字(2和3)之和，而第四个数字是前两个数字(1和2)之和。递归基线情况是当数字为1或2时返回1。

3. 二分搜索问题：在有序数组中搜索给定数字。递归解决方案是将该问题分解为搜索左侧或右侧子数组的子问题，然后递归地在子数组中进行搜索。递归基线情况是子数组为空或只包含一个元素，此时可以确定数字是否匹配或无法执行搜索。