wa了一次,到达50的时候用数据量超了int的范围,改成longlong就行了
#include<iostream> #include #include #include #define MAX 200 using namespace std; long long dp[MAX]; int main() { int n=0,v=0,m=0;scanf("%d",&n); for(int ii=0;ii<n;++ii) { scanf("%d%d",&m,&v); memset(dp,0,sizeof(dp)); dp[m]=1,dp[m+1]=1; for(int i=m+2;i<=v;++i) { dp[i]=dp[i-1]+dp[i-2]; } cout<<dp[v]<<endl; } return 0; }
#include<iostream> #include<cstring> #include<stdio.h> #define MAX 200 using namespace std; int dp[MAX]; int main() { int n,m;scanf("%d",&n); for(int ii=0;ii<n;++ii) { scanf("%d",&m); memset(dp,0,sizeof(dp)); dp[1]=1,dp[2]=1; for(int i=3;i<=m;++i) { dp[i]=dp[i-1]+dp[i-2]; } cout<<dp[m]<<endl; } return 0; }
#include<iostream> #include<cstring> #include<stdio.h> #define MAX 200 using namespace std; int dp[MAX]; int main() { int n; while(~scanf("%d",&n)&&(n!=0)) { memset(dp,0,sizeof(dp)); dp[1]=1,dp[2]=2,dp[3]=3; for(int i=4;i<=n;++i) { dp[i]=dp[i-1]+dp[i-3]; } cout<<dp[n]<<endl; } return 0; }
原文:https://www.cnblogs.com/chrysanthemum/p/12405033.html