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

简介: 贺老师教学链接  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++) {

贺老师教学链接  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);
}



目录
相关文章
|
1月前
|
C语言
C语言模块化程序设计
C语言模块化程序设计
21 0
|
1月前
|
C语言
【C语言】循环结构程序设计(第二部分 -- 习题讲解)
【C语言】循环结构程序设计(第二部分 -- 习题讲解)
|
28天前
|
编译器 C语言
【C语言】字母转换大小写的三种方法
【C语言】字母转换大小写的三种方法
44 0
|
1月前
|
存储 文件存储 C语言
《C语言程序设计》课程设计 -- 火车票票务管理系统
《C语言程序设计》课程设计 -- 火车票票务管理系统
23 1
|
1月前
|
存储 C语言
C语言顺序结构程序设计
C语言顺序结构程序设计
21 0
|
1月前
|
存储 C语言
C语言的顺序程序设计
C语言的顺序程序设计
11 2
|
1月前
|
存储 C语言
C语言的顺序程序设计
C语言的顺序程序设计
15 0
|
1月前
|
C语言
【C语言】用函数实现模块化程序设计
【C语言】用函数实现模块化程序设计
|
16天前
|
程序员 C语言
C语言库函数 — 内存函数(含模拟实现内存函数)
C语言库函数 — 内存函数(含模拟实现内存函数)
26 0
|
1天前
|
C语言
C语言:内存函数(memcpy memmove memset memcmp使用)
C语言:内存函数(memcpy memmove memset memcmp使用)