C语言解决迭代递推问题

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值