当前位置: 首页 > news >正文

递归的作业练习

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;
}

// 非函数型 用递归写

http://www.jsqmd.com/news/79674/

相关文章:

  • 【LeetCode刷题】缺失的第一个正数
  • 突破AI推理天花板:GenSelect与TIR技术如何重塑大模型决策能力
  • 国内大模型部署难题突破:轻量级模型Magistral-Small-2509实现低资源环境高效运行
  • Z-image LoRA 训练整合包下载与使用教程(详细图文教程)
  • OTOFIX D1 PRO One-Year Online Update Subscription for European/American Vehicles
  • Dubbo学习(二):深入 RPC
  • League Akari:8大实用功能快速提升你的英雄联盟游戏体验
  • Dubbo学习(三):深入 Remoting
  • 神经网络中有超参数和自学习参数吗?
  • Day23 回归问题与置信区间
  • AI设计新突破:QWEN溶图LoRA模型助力品牌视觉创作升级
  • 大模型教我成为大模型算法工程师之day8: 优化器与训练技巧
  • Java毕设项目:基于springboot成都旅游网四季成都、特色文化(源码+文档,讲解、调试运行,定制等)
  • League Akari:6个实用功能让你告别繁琐操作,轻松上分
  • api vs jsp 绑定风格
  • 理解 Proxy 原理及如何拦截 Map、Set 等集合方法调用实现自定义拦截和日志——含示例代码解析
  • Java毕设项目:基于springboot厨具厂产品在线销售系统设计与实现小程序(源码+文档,讲解、调试运行,定制等)
  • Java毕设项目:基于springboot二手商品网站(源码+文档,讲解、调试运行,定制等)
  • 详解 Gitee/GitHub 中 HTTPS/SSH 方式数据库仓库创建与本地连接
  • 第五十七篇-ComfyUI+V100-32G+安装SD1.5
  • 突破实时视频生成瓶颈:Krea Realtime 14B模型革新文本到视频技术
  • systemd-resolved.service实验实战3
  • 哔哩下载姬:5个实用技巧让你的B站视频下载效率翻倍
  • Windows右键菜单终极优化指南:从卡顿到流畅的深度解析
  • 腾讯优图实验室开源Youtu-Embedding文本表示模型,赋能企业级AI应用创新
  • SAM3在医疗影像里“指鹿为马”?MedSAM3来了——文本一句话,精准分割病灶
  • Java毕设项目:基于SpringBoot网上超市的设计与实现基于springboot超市在线销售系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 小学娃近视防控不费妈!这款眼调节训练灯,学习护眼一步到位
  • 无人机看地面小目标总“眼瞎”?MambaRefine-YOLO来救场:双模态融合+高效检测,精度直接拉满!
  • QDialog-基础讲解