1 条题解

  • 0
    @ 2023-6-11 12:16:46

    C :

    #include <stdio.h>
    #include <stdlib.h>
    int f(int n)
    {
        int i,r=1,m;
        if(n%3==0)
        {
            if(n==0)
            {
                return 0;
            }
            for(i=1;i<=n/3;i++)
            {
                r=r*4;
            }
            return r;
        }
        else if(n%3==1)
        {
            if(n==1)
            {
                return 1;
            }
            else
            {
                r=f(n-1);
                r=r*1+n-1;
                return r;
            }
        }
        else if(n%3==2)
        {
            if(n==2)
            {
                return 2;
            }
            else
            {
                r=f(n-2);
                r=r*2+n;
                return r;
            }
        }
    }
    int main()
    {
        int a,n=0;
        scanf("%d",&a);
        n=f(a);
        printf("%d",n);
        return 0;
    }
    

    C++ :

    
    #include<iostream>
    using namespace std;
     
    int main(){
    	long long a,b,c,x,n,i;
    	cin>>n;
    	a = 1;
    	b = 2;
    	c = 4;
    	if(n == 1){
    		cout<<1<<endl;
    	}else if(n == 2){
    		cout<<2<<endl;
    	}else if(n == 3){
    		cout<<4<<endl;
    	}else{
    		for(i = 4;i <= n;i++){
    			x = a + b + c;
    			a = b;
    			b = c;
    			c = x;
    		}
    		cout<<x<<endl;
    	}
    	
    	return 0;
    }
    

    Python :

    n=int(input())
    a=[0 for i in range(n+1)]
    for i in range(1,n+1):
        if(i==1):
            a[1]=1
        elif(i==2):
            a[2]=2
        elif(i==3):
            a[3]=4
        else:
            a[i]=a[i-1]+a[i-2]+a[i-3]
    print(a[n])
    
    • 1

    信息

    ID
    2287
    时间
    1000ms
    内存
    16MiB
    难度
    10
    标签
    递交数
    2
    已通过
    1
    上传者