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 /*本题的解题思路可以参考数学中错排公式的推导原理之递推法。*/