3 条题解

  • 0
    @ 2024-10-29 21:17:25

    定义数组时,因该是a[n+1],因为这样当n=0的时候数组才存在,a[0]=1;

    #include <stdio.h>

    int main()

    {

    int n;

    scanf("%d",&n);

    int a[n+1];

    a[0]=1;

    a[1]=1;

    a[2]=2;

    for(int i=2;i<=n;i++){

    a[i]=a[i-1]+a[i-2];

    }

    printf("%d\n",a[n]);

    return 0;

    }

    • @ 2025-3-26 20:42:55

      Python

      a=[0]*1000
      a[0]=1
      a[1]=1
      a[2]=2
      b=int(input())
      if b<=2:
          print(a[b])
      else:
          for i in range(3,b+1):
              a[i]=a[i-1]+a[i-2]
          print(a[b])
      
  • 0
    @ 2024-10-21 9:55:59

    递归解法 :

    #include<stdio.h>
    int f[100];
    int fib(int n)
    {
        if(f[n] != 0)
        {
            return f[n];
        }
        else if(n == 0)
        {
            return 1;
        }
        else if(n == 1)
        {
            return 1;
        }
        else 
        {
            return (f[n - 1] = fib(n - 1)) + (f[n - 2] = fib(n - 2));
        }
    }
    int main()
    {
        int n;
        scanf("%d",&n);
        int ans = fib(n);
        printf("%d",ans);
        return 0;
    }
    
    • 0
      @ 2023-8-27 20:38:37
      #include<stdio.h>
      int main(){
          int a1,a2,b,s,n;
          a1=0,a2=1,s=1;
          scanf("%d",&n);
          for(b=1;b<=n;b++)
          {
              s=a1+a2;
              a1=a2;
              a2=s;
          }
          printf("%d",s);
          return 0;
      }
      
      • 1

      信息

      ID
      227
      时间
      1000ms
      内存
      256MiB
      难度
      5
      标签
      (无)
      递交数
      377
      已通过
      145
      上传者