算法之——————递推的简单解释

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法之——————递推的简单解释相关的知识,希望对你有一定的参考价值。

1.顺推法:已知条件,逐步到结果,也叫迭代法,转转相除

2.逆推法:已知结果,推条件

步骤

1:确定迭代变量

2:建立迭代关系式

3:迭代过程的控制:1是计数型循环控制2,条件循环解决迭代次数无法确定的问题

关键:有迭代过程,循环结构

递推过程找迭代关系式,循环控制好迭代过程

顺推:

谷角猜想:编程打印出过程:

 1 #include<stdio.h>
 2 //#include<malloc>
 3 #include<string.h>
 4 int main()
 5 {
 6     int n;
 7     scanf("%d",&n);
 8     printf("%d->",n);//迭代变量
 9     while(n !=1)//递推控制
10     {
11         //递推过程
12         if(n%2==0)
13         {
14             n = n/2;
15         }
16         else
17         {
18 
19             n = n*3+1;
20         }
21         printf("->%d",n);
22     }
23     return 0;
24 }

逆推:

猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,又多吃了一个;

以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。问第一天共摘了多少个桃子?  

 1 #include<stdio.h>
 2 //#include<malloc>
 3 #include<string.h>
 4 int main()
 5 {
 6     int s = 1;//十天的苹果
 7     int i;
 8     for(i = 9;i>0;i--)//计数控制
 9     {
10         s = (s+1)*2;//倒退第九天
11     }
12     printf("%d",s);
13     return 0;
14 }

 

以上是关于算法之——————递推的简单解释的主要内容,如果未能解决你的问题,请参考以下文章

递推的递推算法

[LeetCode] 动态规划入门题目

动态规划初步

Java递归递推的应用

算法之动态规划问题

Java课后动手动脑及递归递推的应用