C++递归
递归的目的是简化程序设计,使程序易读;
但是递归增加了系统开销 。时间上,执行调用与返回的额外工作要占用CPU时间。空间上,随着美递归一次,栈内存就多占一截;
非递归函数效率虽高,但比较难编程,而且可读性差 
递归 求n!
//递归 求n! //递归必须有结束递归的条件 //递归算法效率比较低,但是可读性好 long fact(int n) { if (n==1) { return 1; } return fact(n-1)*n; } long fac1(int n) { long result; result=1; for (int i=1;i<=n;i++) { result=i*result; } return result; } void recursive1() { cout<<fac1(6); }
汉诺塔
//哈诺塔 //n个金片,从A针借助B针移动到C针 void move(char x,char y) { cout<<x<<"-->"<<y<<endl; } void hanoi(int n,char one,char two,char three) { if (n==1) { move(one,three); } else { hanoi(n-1,one,three,two);//将A座上n-1个盘子借助C座移动到B座上 move(one,three); //将A座上剩下的一个盘子到C座上 hanoi(n-1,two,one,three);//将n-1个盘子从B座借助A座移到C座上 } } void hanoi1() { int m; cout<<"input the number of disks:"; cin>>m; hanoi(m,'A','B','C'); }
 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号