递推题,哪错了??
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 编辑 ]









