HDU 2044 一只小蜜蜂...
地址:http://acm.hdu.edu.cn/showproblem.php?pid=2044
正确:
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 long long f1,f2,temp; 6 int n,a,b; 7 cin>>n; 8 while(n--) 9 { 10 cin>>a>>b; 11 f1=1;f2=1; 12 for(int i=1;i<b-a;i++) 13 { 14 temp=f1+f2; 15 f1=f2; 16 f2=temp; 17 } 18 cout<<f2<<endl; 19 } 20 return 0; 21 } 22 //正确
WA:不知道为啥???? 将printf("%lld\n",f2);改为printf("%I64d\n",f2);就对了。。。。
1 #include<stdio.h> 2 int main() 3 { 4 long long f1,f2,temp; 5 int n,a,b; 6 scanf("%d",&n); 7 while(n--) 8 { 9 scanf("%d%d",&a,&b); 10 f1=1;f2=1; 11 for(int i=1;i<b-a;i++) 12 { 13 temp=f1+f2; 14 f1=f2; 15 f2=temp; 16 } 17 printf("%lld\n",f2); //改为printf("%I64d\n",f2);就对了。。。。 18 } 19 return 0; 20 } 21 //WA
递归超时:
1 #include<stdio.h> 2 int dp(int n) 3 { 4 if(n==1||n==2) return n; 5 return dp(n-1)+dp(n-2); 6 } 7 int main() 8 { 9 int N,a,b,k; 10 scanf("%d",&N); 11 while(N--) 12 { 13 scanf("%d%d",&a,&b); 14 k=b-a; 15 printf("%d\n",dp(k)); 16 } 17 return 0; 18 } 19 //超时
还超时:不懂啊。。。。
1 #include<stdio.h> 2 int main() 3 { 4 int N; 5 int a,b,i; 6 long long int dp[60]; 7 scanf("%d",&N); 8 while(N--) 9 { 10 while(~scanf("%d%d",&a,&b),a||b) 11 { 12 dp[1]=1;dp[2]=2;dp[3]=3; 13 for(i=3;i<=b-a;i++) 14 dp[i]=dp[i-1]+dp[i-2]; 15 printf("%lld\n",dp[b-a]); 16 } 17 } 18 return 0; 19 } 20 //Output Limit Exceeded