news 2026/4/18 7:04:14

递归的作业练习

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
递归的作业练习

1. 实现n的k次方(递归)
// Pow(n,k)(n的k次方)
// k>0,n*Pow(n,k-1)
// k=0,1
// k<0,1.0/Pow(n,-k)

double Pow(int n, int k)
{
if (k > 0)
return n * Pow(n, k - 1);
else if (k == 0)
return 1;
else
return 1.0 / Pow(n, -k);
}

int main()
{
int n = 0;
int k = 0;
scanf("%d%d", &n, &k);
double ret = Pow(n, k);
printf("%lf\n", ret);
return 0;
}
2. 字符串逆序(递归实现)
void reverse(char* str)
{
char tmp = *str; //1
int len = strlen(str);
*str = *(str + len - 1); //2
*(str + len - 1) = '\0'; //3
if (strlen(str + 1) >= 2)
reverse(str + 1); //4
*(str + len - 1) = tmp;
}

int main()
{
char arr[] = "abcdefg"; //[a b c d e f g \0]
reverse(arr);
printf("%s\n", arr);
return 0;
}
3. 数字各位求和(递归)
int DigitSum(unsigned int n)
{
if (n > 9)
return DigitSum(n / 10) + n % 10;
else
return n;
}

int main()
{
unsigned int n = 0;
scanf("%u", &n);
int sum = DigitSum(n);
printf("%d\n", sum);
return 0;
}
4. 递归函数Fun
#include <stdio.h>
int Fun(int n)
{
if (n == 5)
return 2;
else
return 2 * Fun(n + 1);
}

int main()
{
int ret = Fun(2);
// 2*Fun(3)=8 → 2*Fun(4)=4 → 2*Fun(5)=2 → 最终16
printf("%d\n", ret);
return 0;
}
5. 字符串逆序(非递归)
// 字符串逆序(非递归)
int main()
{
char arr[] = "abcdefg"; //[a b c d e f g \0]
int sz = sizeof(arr) / sizeof(arr[0]);
int left = 0;
int right = sz - 2;
while (left < right)
{
char tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
printf("%s\n", arr);
return 0;
}

// 非函数型 用递归写

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 5:40:43

【LeetCode刷题】买卖股票的最佳时机

给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果…

作者头像 李华
网站建设 2026/3/31 5:19:26

终极指南:快速掌握Scarab空洞骑士模组管理神器

终极指南&#xff1a;快速掌握Scarab空洞骑士模组管理神器 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 想要轻松管理几十个空洞骑士模组却不知从何下手&#xff1f;Scarab作…

作者头像 李华