ackermann.cpp

来自「1928年」· C++ 代码 · 共 40 行

CPP
40
字号
#include   <iostream>   
#include   <cstdlib>   
    
 using   namespace   std;   
    
  long   Ackermann(long   m,   long   n);   
    
  int   main(int   argc,   char   *argv[])   
  {   
          long   m,   n;   
          cin>>m>>n;   
          cout<<Ackermann(m,   n);   
          system("PAUSE");   
          return   0;   
  }   
    
  long   Ackermann(long   m,   long   n)   
  {   
          long   stack[10000];   
          int   pos=1;   
          stack[0]=m;   stack[1]=n;   
          while(pos)   
          {   
                  n=stack[pos--];   
                  m=stack[pos];   
                  if(m==0)   stack[pos]=n+1;   
                  if(m!=0   &&   n==0)     
                  {   
                          stack[pos++]=m-1;   
                          stack[pos]=1;   
                  }     
                  if(m!=0   &&   n!=0)   
                  {     
                          stack[pos++]=m-1;   
                          stack[pos++]=m;   
                          stack[pos]=n-1;   
                  }   
          }   
          return   stack[0];   
  }   

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?