C语言及程序设计初步例程-35 问题求解方法——迭代

    xiaoxiao2026-03-15  7

    贺老师教学链接  C语言及程序设计初步 本课讲解

    例:求Fibonacci数列前40个数

    #include <stdio.h> int main() { long f1,f2,fn; int i; f1=f2=1; printf("%ld\t%ld\t",f1,f2); for(i=3; i<=40; i++) { fn=f1+f2; printf("%ld\t",fn); if(i%5==0) printf("\n"); f1=f2; f2=fn; } return 0; } 另解:在“迭代”中,赋予变量新的含义 #include <stdio.h> int main() { long f1,f2; int i; f1=f2=1; for(i=1; i<=20; i++) { printf("%ld\t%ld\t",f1,f2); if(i%2==0) printf("\n"); f1=f1+f2; //左f1代表第3个数,是第1、2数之和 f2=f2+f1; //左f2代表第4个数,是第2、3数之和 } return 0; } 求级数公式(精确到小数点后5位)  #include <stdio.h> #include <math.h> int main() { double x, sum=1, term=1; int i=1;//一定要赋初值 scanf("%lf", &x); while(fabs(term)>=1e-5) { term=term*(-1)*x*x/((2*i)*(2*i-1)); sum=sum+term; i++; } printf("%f\n", sum); return 0; } 另一个正解 #include <stdio.h> #include <math.h> int main() { double x, sum=0, term=1; int i=1; scanf("%lf", &x); while(fabs(term)>=1e-5) { sum=sum+term; term=term*(-1)*x*x/((2*i)*(2*i-1)); i++; } printf("%f\n", sum); }

    
    最新回复(0)