定义:
n+1 n=0
A(m,n)={A(m-1,1) m=0
A(m-1,A(m,n-1)) n>0,m>0
1 #include <iostream> 2 #include<iomanip> 3 using namespace std; 4 int ack(int m,int n) 5 { 6 if(m==0) 7 return n+1; 8 else if(n==0) 9 return ack(m-1,1); 10 else 11 return ack(m-1,ack(m,n-1)); 12 } 13 int main() 14 { 15 for(int i=0;i<4;i++) 16 for(int j=0;j<10;j++){ 17 cout<<setw(5)<<ack(i,j)<<‘ ‘; 18 if((j+1)%10==0)cout<<endl; 19 } 20 21 }
第一行:A(0,0)-A(0,9)
第二行:A(1,0)-A(1,9)
第三行:A(2,0)-A(2,9)
第四行:A(3,0)-A(3,9)
A(0,n)=n+1
A(1,n)=A(0,A(1,n-1)=A(1,n-1)+1=...=A(1,0)+n=A(0,1)+n=n+2
A(2,n)=A(1,A(2,n-1))=A(2,n-1)+2=A(1,A(2,n-2))+2=A(2,n-2)+2+2=...=A(2,0)+2n=A(1,1)+2n=2n+3
A(3,n)=A(2,A(3,n-1))=2A(3,n-1)+3即xn=2xn-1+3 化为 xn+3=2(xn-1+3) 用等比数列可求得xn=x02n A(3,0)+3=A(2,1)+3=8 即x0=8所以:
A(3,n)=8*2n-3=2n+3-3
感觉递归还是挺难的
原文:http://www.cnblogs.com/george-cw/p/3587918.html