import java.util.*; public class Main{ public static void main(String[] args){ Scanner in = new Scanner(System.in); int n = in.nextInt(); long[] dp = new long[n]; dp[0] = 1; for(int i = 1; i < n; i++){ if(i-4 < 0) dp[i] = dp[i-1]; else dp[i] = dp[i-1]+dp[i-4]; } System.out.println(dp[n-1]); } }
m = int(input()) r = [1, 0, 0, 0] # [满1个月的兔子对数,满俩月的,满仨月的,满四月能生的] for i in range(m-1): new = r[3] r[3] += r[2] r[2] = r[1] r[1] = r[0] r[0] = new sum = 0 for i in r: sum += i print(sum)
int n; cin >> n; //87 596331286321 long long flag[4]{0,0,0,0}; flag[0] = 1; long long ans = 0; for (int i = 1; i <= n; i++) { long t = flag[3]; flag[3] = flag[2]; flag[2] = flag[1]; flag[1] = flag[0]; if (i >= 5) { flag[1] = ans; } else { flag[0] = ans; } ans += t; } for (int i = 0; i < 4; i++) { ans += flag[i]; } cout << ans << endl;
import java.util.*; // 20 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); if(n<4){ System.out.print(1); } long[]dp=new long[n]; dp[0]=1; dp[1]=1; dp[2]=1; dp[3]=1; for(int i=4;i<n;i++){ dp[i]=dp[i-4]+dp[i-1]; } System.out.print( dp[n-1]); } }
#include<iostream> using namespace std; int main() { long n,r=1,young[4]={0,0,0,0}; cin>>n;//输入月份 n=n-4; if(n<0){//月份少于5个月直接返回1 cout<<r<<endl; return 0; } for(int i=0,count=0;i<n;i++) //count为笼子编号 { if(count>=4)count=0;//返回一号笼子 if(young[count]!=0) {//取出已经成熟的兔子r=young[count]+r; young[count]=0; } young[count]=r;//把新繁殖出来的兔子放入笼子 count++; } for(int i=0;i<4;i++) { r=r+young[i]; } cout<<r<<endl; return 0; }