intfac(int x){if(x ==0|| x ==1)return1;elsereturn x*fac(x-1);}
斐波那契数列
intfib(int x){if(x ==1|| x ==2)return1;elsereturnfib(x-1)+fib(x-2);}
Ackerman函数
intackerman(int m,int n){int f;if(m ==0&& n ==1)f =2;elseif(m >=0&& n ==0)f =1elseif(m ==0&& n >=2)f = n+2elseif(m >=1&& n >=1)f =ackerman(ackerman(n-1, m), m-1);return f;}
排列问题
voidPerm(int list[],int k,int m){if(k == m){for(int i =0; i <= m; i++)cout << list[i]<<endl;}else{for(int i = k; i <= m; i++){swap(list[i], list[k]);Perm(list, k+1, m);swap(list[i], list[k]);}}}
voidchessBoard(int tr,int tc,int dr,int dc,int size){if(size==1)return;int s = size/2;//分割棋盘int t =++num;//L型骨牌号//覆盖左上角子棋盘if(dr < tr + s && dc < tc +s){//特殊方格在此棋盘中chessBoard(tr,tc,dr,dc,s);}else//此棋盘中无特殊方格{//用t号L型骨牌覆盖右下角Matrix[tr+s-1][tc+s-1]= t;//覆盖其余方格chessBoard(tr,tc,tr+s-1,tc+s-1,s);}//覆盖右上角子棋盘if(dr < tr + s && dc >= tc + s ){//特殊方格在此棋盘中chessBoard(tr,tc+s,dr,dc,s);}else//此棋盘中无特殊方格{//用t号L型骨牌覆盖左下角Matrix[tr+s-1][tc+s]= t;//覆盖其余方格chessBoard(tr,tc+s,tr+s-1,tc+s,s);}//覆盖左下角子棋盘if(dr >= tr + s && dc < tc + s){//特殊方格在此棋盘中chessBoard(tr+s,tc,dr,dc,s);}else{//用t号L型骨牌覆盖右上角Matrix[tr+s][tc+s-1]= t;//覆盖其余方格chessBoard(tr+s,tc,tr+s,tc+s-1,s);}//覆盖右下角子棋盘if(dr >= tr + s && dc >= tc + s){//特殊方格在此棋盘中chessBoard(tr+s,tc+s,dr,dc,s);}else{//用t号L型骨牌覆盖左上角Matrix[tr+s][tc+s]= t;//覆盖其余方格chessBoard(tr+s,tc+s,tr+s,tc+s,s);}}