您的位置:首页 > 其它

HDU 2044 一只小蜜蜂...

2012-08-18 09:52 323 查看
地址:http://acm.hdu.edu.cn/showproblem.php?pid=2044

正确:

#include<iostream>
using namespace std;
int main()
{
long long f1,f2,temp;
int n,a,b;
cin>>n;
while(n--)
{
cin>>a>>b;
f1=1;f2=1;
for(int i=1;i<b-a;i++)
{
temp=f1+f2;
f1=f2;
f2=temp;
}
cout<<f2<<endl;
}
return 0;
}
//正确


WA:不知道为啥???? 将printf("%lld\n",f2);改为printf("%I64d\n",f2);就对了。。。。

#include<stdio.h>
int main()
{
long long f1,f2,temp;
int n,a,b;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&a,&b);
f1=1;f2=1;
for(int i=1;i<b-a;i++)
{
temp=f1+f2;
f1=f2;
f2=temp;
}
printf("%lld\n",f2);  //改为printf("%I64d\n",f2);就对了。。。。
}
return 0;
}
//WA


递归超时:

#include<stdio.h>
int dp(int n)
{
if(n==1||n==2)  return n;
return dp(n-1)+dp(n-2);
}
int main()
{
int N,a,b,k;
scanf("%d",&N);
while(N--)
{
scanf("%d%d",&a,&b);
k=b-a;
printf("%d\n",dp(k));
}
return 0;
}
//超时


还超时:不懂啊。。。。

#include<stdio.h>
int main()
{
int N;
int a,b,i;
long long int dp[60];
scanf("%d",&N);
while(N--)
{
while(~scanf("%d%d",&a,&b),a||b)
{
dp[1]=1;dp[2]=2;dp[3]=3;
for(i=3;i<=b-a;i++)
dp[i]=dp[i-1]+dp[i-2];
printf("%lld\n",dp[b-a]);
}
}
return 0;
}
//Output Limit Exceeded
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: