zoukankan      html  css  js  c++  java
  • 打印Fibonacci数列方法汇总(前20项,每行5个)

    NO.1

    迭代法

    标签:通俗、易懂

    思路:先打印第一项、再在循环里面执行fib=fib1+fib2,把fib2赋给fib1,把fib赋给fib2,每行5个可使用if函数(循环次数对5取余)。

     1 #include <stdio.h>
     2 main()
     3 {  
     4 long fib1=0,fib2=1,fib=1;
     5  int i;  
     6 printf("%ld	",fib);
     7  for(i=2;i<=20;i++)  
     8 {  
     9 fib=fib1+fib2;
    10  printf("%ld	",fib);
    11  fib1=fib2;
    12  fib2=fib;
    13  if(i%5==0)
    14  printf("
    ");
    15  }
    16  getch();
    17 }

    NO.2

    加减法

    标签:代码少,不易理解

    思路:

    i n fib
    1 1 1
    2 3 1
    3 5 3
    4 8 5

    每次得出下一个数,再通过赋值赋给fib

     1 #include<stdio.h>
     2 main()
     3 {
     4    int fib=0,n=1,i;
     5    for(i=1;i<=20;i++)
     6    {
     7       n+=fib;
     8    fib=n-fib;
     9    printf("%d	",fib);
    10    if(i%5==0)
    11     printf("
    ");
    12    }
    13    getch();
    14 }

    NO.3

    数组法

    标签:代码少,最易理解

    思路:先打印前两项,后一项等于前两项之和。

     1 #include<stdio.h>
     2 main()
     3 {
     4  long fib[21];
     5  int i;
     6  fib[1]=1;
     7  fib[2]=1;
     8  printf("%5ld	%5ld	",fib[1],fib[2]);
     9  for(i=3;i<=20;i++)
    10  {fib[i]=fib[i-1]+fib[i-2];
    11  printf("%5ld	",fib[i]);
    12  if(i%5==0)
    13   printf("
    ");
    14  }
    15  getch();
    16 }

    拓展,动态数组法

    NO.1动态数组设置方法

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 main()
     4 {
     5 int num,*p=0,i;
     6 printf("输入数组元素个数:");
     7 scanf("%d",&num);
     8 p=(int*)malloc(sizeof(int)*num);
     9 for(i=0;i<num;i++)
    10 {
    11 scanf("%d",&p[i]);
    12 }
    13 for(i=0;i<num;i++)
    14 {
    15 printf("%d
    ",p[i]);
    16 }
    17 }

    NO.2

    动态数组法的Fibonacci数列

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 main()
     4 {
     5 int num,*fib=0,i;
     6 printf("输入要显示元素个数:");
     7 scanf("%d",&num);
     8 fib=(int*)malloc(sizeof(int)*num);
     9 fib[1]=1;
    10 fib[2]=1;
    11 printf("%8ld	%8ld	",fib[1],fib[2]);
    12  for(i=3;i<=num;i++)
    13  {fib[i]=fib[i-1]+fib[i-2];
    14  printf("%8ld	",fib[i]);
    15  if(i%5==0)
    16   printf("
    ");
    17  }
    18  getch();
    19 }

    相关截图

  • 相关阅读:
    4G DTU是什么 4G DTU有什么功能
    模拟量转485采集模块是什么
    vue详情页回到列表页定位到之前位置(keep-alive)
    vue插槽
    elementUI给table表头加CheckBox
    $attrs和$listeners
    parseTime-格式化时间
    localStorage设置过期时间
    前端埋点
    将接口数据通过递归过滤
  • 原文地址:https://www.cnblogs.com/wangyishan/p/6734588.html
Copyright © 2011-2022 走看看