2 条题解

  • 0
    @ 2024-08-15 16:54:58
    #include<iostream>
    using namespace std;
    int main(){
        unsigned long long n, a = 1, b = 2, c = 4, d;
        cin >> n;
        if(n == 1 || n == 2)cout << n;
        else{
            for(int i = 3; i < n; i++){
                d = a + b + c;
                a = b; b = c; c = d;
            }
            cout << c;
        }
        return 0;
    }
    

    其实这个数列有通项公式,但明显递推更适合计算机

  • 0
    #include<bits/stdc++.h>
    using namespace std;
    int ways(int x);
    int main()
    {
        int x;
        cin>>x;
        cout<<ways(x)<<endl;
        return 0;
    }
    
    int ways(int x)
    {
        if(x==1)
            return 1;
        else
        {
            if(x==2)
                return 2;
            else
            {
                if(x==3)
                    return 4;
                else
                    return ways(x-1)+ways(x-2)+ways(x-3);
            }
        }
    }
    
    
  • 1

信息

ID
1497
难度
3
分类
(无)
标签
递交数
42
已通过
22
通过率
52%
被复制
5
上传者