Tiling(POJ 2506 高精度)
~题目链接~
http://poj.org/problem?id=2506
输入
2 8 12 100 200
结果
3 171 2731 845100400152152934331135470251 1071292029505993517027974728227441735014801995855195223534251
递推+高精度 f[n]=f[n-1]+2*f[n-2]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #include<stdio.h> #include<string.h> int main() { int s[261][261]; //注意把数组开大一点,250取到 int i,j,n,m,k=0; memset(s,0, sizeof (s)); s[1][0]=1; s[2][0]=3; for (i=3;i<=260;i++) for (j=0;j<=260;j++) { m=s[i-1][j]+2*s[i-2][j]+k; s[i][j]=m%10; k=m/10; } int leap=0; while (scanf( "%d" ,&n)!=EOF) { leap=0; if (n==0) { printf( "1\n" ); continue ; } for (i=260;i>=0;i--) { if (s[n][i]||leap) { leap=1; printf( "%d" ,s[n][i]); } else continue ; } printf( "\n" ); } return 0; } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步