递推题,哪错了??
A(m,n)= n+1 (m=0)A(m,n)= A(m-1,1) ( m>0,n=0)
A(m,n)= A(m-1,A(m,n-1)) (m>0,n>0)
输入
输入包含多组测试数据,每组测试数据包含两个整数:m (0 < m <= 3)和 n ( 0 <= n <= 1000000)
输出
对应每组测试数据,输出相应的A(m,n);
样例输入
1 3
2 4
样例输出
5
11
提示
要注意的是,当m等于3时,n最大为24。
程序代码:
#include<cstdio> __int64 a[3][1000000]; int main() { int i,j,m,n; while(scanf("%d%d",&m,&n)!=EOF) { for(i=0;i<=n;++i) a[0][i] = i + 1; a[1][0] = 2; a[2][0] = 3; a[3][0] = 5; for(i=1;i<=m;++i) for(j=1;j<=n;++j) a[i][j] = a[i-1][a[i][j-1]]; printf("%I64d\n",a[m][n]); } return 0; }
哪错了?
[ 本帖最后由 cb_1212 于 2011-12-21 22:21 编辑 ]