C语言解决迭代递推问题

举报
鸣海步 发表于 2022/04/19 21:10:33 2022/04/19
【摘要】 1.什么是迭代递推问题?问题的求解过程是不断用新值取代变量的旧值,或由旧值不断递推出变量的新值。2.怎么求解迭代递推问题?用循环,确定迭代变量,找出问题中的迭代表达式。例1.将斐波那契数列中大于t的最小的一个数,其中斐波那契数列中的F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+(n-2).分析:迭代终止条件:当某一个数大于1,则终止迭代;迭代关系式为F(n)=F(n-...

1.什么是迭代递推问题?问题的求解过程是不断用新值取代变量的旧值,或由旧值不断递推出变量的新值。

2.怎么求解迭代递推问题?用循环,确定迭代变量,找出问题中的迭代表达式。

例1.将斐波那契数列中大于t的最小的一个数,其中斐波那契数列中的F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+(n-2).

分析:迭代终止条件:当某一个数大于1,则终止迭代;迭代关系式为F(n)=F(n-1)+(n-2),其中的迭代变量分别为0,1.利用递推求解斐波那契数列数列的每一个数,迭代变量有三个,分别定义f0,f1,f.代码如下:

#include <stdio.h>
int main()
{ int f0,f1,f,t;
  f0=0;    f1=1;
  scanf("%d",&t);
  do
    { f=f0+f1;
      f0=f1;
      f1=f;
    }while(f<t);
   printf("大于t的最小的数是%d\n",f);
   return 0;}
例2:求解方程cos(x)-x的一个实根。

分析:迭代变量有两个,分别定义为x0,x1,迭代关系式x0=x1,x=cos(x0),其中迭代变量x1的初值为0;迭代终止条件,当x0-x1的绝对值小于0.000001,则终止迭代。代码如下:

#include <stdio.h>
#include<math.h>
int main()
{ float x0,x1;
  x1=0;
  do
    {x0=x1;
     x1=cos(x0);
    }while(fabs(x0-x1)>0.000001);
    printf("一个实根是%f\n",x1);
    return 0;
}
    


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。