迭代循环:即是一个不断用新值取代变量的旧值,然后由变量旧值递推出变量新值的过程,这种迭代与如下因素有关:初值,迭代公式,迭代次数。
1.兔子产子问题: 算法可以描述为 fib=fib2=1(n=1,2) 初值
fibn=fib(n-1)+fib(n-2)(n>=3) 迭代公式
程序如下:long fib1=1,fib2=1,fib;
int i;
printf("%12ld%12ld",fib1,fib2);
for(i=3;i<31;i++)
{
fib=fib1+fib2;
printf("%12ld",fib);
if(i%4==0)
printf("\n");
fib2=fib1;
fib1=fib;
}
2.牛顿迭代法求方程根: 公式:x=x0-f(x0)/f'(x0),设迭代到|x-x0|<10^(-5)
float solution(float a, float b,float c,float d)
{
float x0,x=1.5,f,fd,h;
do
{
x0=x;
f=a*x0*x0*x0+b*x0*x0+c*x0+d;
fd=3*a*x0*x0+2*b*x0+c;
h=f/fd;
x=x0-h;
}while(fabs(x-x0)>1e-5);
return x;
}
int main ()
{
float a,b,c,d,x;
printf("enter a,b,c,d:\n");
scanf("%f%f%f%f",&a,&b,&c,&d);
x=solution(a,b,c,d);
printf("result=%f\n");
return 0;
}