加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
2021.11.3.cpp 1.16 KB
一键复制 编辑 原始数据 按行查看 历史
invictusQAQ 提交于 2021-11-03 22:35 . 一些简单递归实现
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
int Fib(int n)//非递归实现斐波那契
{
if (n == 1 || n == 2)
return 1;
long long int Fib1 = 1;
long long int Fib2 = 1;
long long int Fibn = 0;
for (int i = 2; i < n; i++)
{
Fibn = Fib1 + Fib2;
Fib1 = Fib2;
Fib2 = Fibn;
}
return Fibn;
}
void print(int n)//递归打印一个整数的每一位
{
if (n > 9)
{
print(n / 10);
}
printf("%d ", n % 10);
}
int Fac(int n)//递归求n的阶乘
{
if (n <= 1)
return 1;
else
return n * Fac(n - 1);
}
int my_strlen(char* p)//非递归模拟strlen
{
int count = 0;
while (*p != '\0')
{
count++;
p++;
}
return count;
}
int my_strlen(char* p)//递归实现strlen
{
if (*p == '\0')
{
return 0;
}
else
return 1 + my_strlen(p + 1);
}
void reverse_string(char* string)//递归模拟实现reverse
{
char* l = string;
char* r = string + strlen(string) - 1;
while (l < r)
{
char tmp = *l;
*l = *r;
*r = tmp;
l++;
r--;
}
}
int DigitSum(int n)//计算一个数的每位之和(递归实现)
{
if (n > 9)
return DigitSum(n / 10) + n % 10;
else
return n;
}
int Pow(int n, int k)//递归实现n的k次方
{
if (k == 0)
return 1;
else
return n * Pow(n, k - 1);
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化