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

c语言:用迭代法解决递归问题

题目:


 

解释:题目的意思就是用迭代法的空间和时间复杂的太高了,需要我们减小空间与时间的复杂度,我就想到了迭代法,思路和代码如下:

#include <stdio.h>
//这里是递归法转迭代法
int main()
{int x,i;scanf("%d",&x);long long a[x+1];//创建一个范围较大的数组,为避免溢出,多+1for(i=0;i<x+1;i++){if(i<3){a[i]=i;//如:i=0,a[0]=0;a[1]=1;a[2]=2;//数组下标等于数值}else{a[i]=a[i-3]+2*a[i-2]+3*a[i-1]//如:输入3,就是a[3]=a[0]+2*a[1]+3*a[2]}                               //    输入4,就是a[1]+2*a[2]+3*a[3]//    以此类推,因为大于等于a[3]的数组的已经有值了,不会创建新的空间,所以空间复杂度小}                                  //    且不会像递归那样,重复计算例如a[3],a[4]的次数,这样迭代法的时间复杂度和空间复杂的都比较小printf("%lld",a[x]);
}

 


效果展示: 

http://www.lryc.cn/news/239936.html

相关文章:

  • 服务器数据恢复—OCFS2下raid5磁盘损坏导致阵列崩溃的数据恢复案例
  • YOLO目标检测——卫星遥感多类别检测数据集下载分享【含对应voc、coco和yolo三种格式标签】
  • 基于Towers of Binary Fields的succinct arguments
  • 【LeetCode刷题笔记】DFSBFS(一)
  • Amazon Generative AI 新世界 | 基于 Amazon 扩散模型原理的代码实践之采样篇
  • 使用C语言统计一个字符串中每个字母出现的次数
  • 中国出海主力系列专访之三七互娱:亚马逊云科技助力三七互娱海外“出圈”之路
  • 算法刷题-动态规划2
  • 【Vue】自定义指令
  • MFC 中创建并显示二维码
  • NX二次开发UF_CAM_set_clear_plane_tag 函数介绍
  • 计算机网络:数据链路层
  • 电线电缆行业生产管理怎么数字化?
  • 计算机网络之数据链路层
  • 前端新手Vue3+Vite+Ts+Pinia+Sass项目指北系列文章 —— 系列文章(目录)
  • uniapp 给小程序添加分享功能
  • npm命令
  • Halcon Solution Guide I basics(3): Region Of Interest(有兴趣区域/找重点)
  • 以太坊铭文聚合交易平台 Scorpio,铭文爆发的新推手?
  • Socket通信之网络协议基本原理
  • linux 开发板以太网通过Ubuntu上外网方法
  • DependencyProperty.Register:wpf 向别的xaml传递参数
  • uvm白皮书练习_ch2_ch231_加入transaction
  • python-泛型实现,类型检查
  • 黑马React18: Redux
  • visionOS空间计算实战开发教程Day 5 纹理和材质
  • 低代码PaaS开发平台
  • 阿里云99元服务器ECS经济型e实例性能如何?测评来了
  • vue3-生命周期
  • 23. 深度学习 - 多维向量自动求导