hdu递推公式水题

hdu2013 蟠桃记

 1 #include<stdio.h>
 2 int main()
 3 {
 4     long long day,x,ans[31];
 5     for(int i=1;i<31;++i){
 6         x=1;
 7         day=i;
 8         while(--day) 
 9             x=(x+1)<<1;
10         ans[i]=x;
11     }
12     while(~scanf("%I64d",&day))
13         printf("%I64d\n",ans[day]);
14     return 0;
15 }        

hdu2041    超级楼梯

 1 #include<stdio.h> 
 2 #include<stdlib.h>
 3 int main()
 4 {
 5     int i,k1,k2,t,m,n;
 6     scanf("%d",&n);
 7     while(n--)
 8     {
 9         scanf("%d",&m);
10         for(i=2,k1=k2=1;i<m;i++)
11         {
12             t=k2;
13             k2=k1+k2;
14             k1=t;
15         }
16         printf("%d\n",m==1?0:k2);
17     }
18     system("pause");
19     return 0;
20 }

hdu2042    不容易系列之二

 1 #include <stdio.h>
 2 int a[40]={3};
 3 int main()
 4 {
 5     for(int i=0;i<30;++i)
 6         a[i+1]=(a[i]-1)*2;
 7     int T,n;
 8     scanf("%d",&T);
 9     while(T--){
10         scanf("%d",&n);
11         printf("%d\n",a[n]);
12     }
13     return 0;
14 }

hdu2044    一只小蜜蜂...

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int main()
 4 {
 5     long long i,k1,k2,t,m,n,a,b;
 6     scanf("%I64d",&m);
 7     while(m--)
 8     {
 9         scanf("%I64d%I64d",&a,&b);
10         for(i=k1=k2=1,n=b-a;i<n;i++)
11         {
12             t=k2;
13             k2+=k1;
14             k1=t;
15         }
16         printf("%I64d\n",k2);
17     }
18     system("pause");
19     return 0;
20 }
21 //本题用到公式:F(m)=F(m-1)+F(m-2);

hdu2045    不容易系列之(3)—— LELE的RPG难题

 1 #include<stdio.h> 
 2 #include<stdlib.h>
 3 int main()
 4 {
 5     int i,n;
 6     __int64 k1,k2,t;
 7     while(scanf("%I64d",&n)!=EOF)
 8     {
 9         for(i=3,k1=k2=6;i<n;i++)
10         {
11             t=k2;
12             k2+=2*k1;
13             k1=t;
14         }
15         printf("%I64d\n",n==1?3:k2);
16     }
17     system("pause");
18     return 0;
19 }
20 /*本题的解题思路可以参考数学中错排公式的推导原理之递推法。*/

posted on 2012-08-18 10:12  小花熊  阅读(221)  评论(0编辑  收藏  举报

导航