1 条题解

  • 1
    @ 2024-11-16 18:58:14

    这是我的第二篇题解

    上一篇是B2002

    这道题有两种做法

    第一种便是函数

    函数要用到递归

    至于递归是什么可以看这个

    递归的方法便是Fib(n) = Fib(n-1) + Fib(n-2) 基本情况是Fib(1) = 1和Fib(2) = 1。 所以可以做个特判

    if(n <= 2){
    	return 1;
    }
    
    

    第二种便是for循环

    要先定义

    int s=1;//前一项
    int d=1;//前一项的前面
    int ans = 0;//现在这一项(不一定要赋值)
    
    

    再和上面一样搞个特判 但是return 1;要改成ans = 1; 判断的方法是

    for(int i=3;i<=n;i++){
        ans = s + d;
        d = s;
        s = ans;
    }
    

    这样就完成了

    信息

    ID
    4514
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    (无)
    递交数
    61
    已通过
    27
    上传者