zoukankan      html  css  js  c++  java
  • 6、递归

    递归就是自己调用自己

    例:计算阶乘

    5!=5x4x3x2x1;

    n!=n x (n-1)!;

    5!=5 x 4!  ,算不出来先暂存

    4!=4 x 3!  ,算不出来先暂存

    3!=3 x 2!  ,算不出来先暂存

    2!=2x 1!  ,算不出来先暂存

    1!=1x 0!  ,算不出来先暂存

    0!=1;算出来了往回推

    1!=1 x 1=1;算出来了往回推

    2!=2x 1!=2;算出来了往回推

    3!=3 x 2!=6;算出来了往回推

    4!=4 x 3!=24;算出来了往回推

    5!=5 x 4!=5 x 24 =120;算出来了

    任何能使用递归解决的问题都可以使用迭代实现

    递归更好理解,但大量的递归调用会占用大量的内存空间和时间,

      1 #include<iostream>
      2 
      3 using namespace std;
      4 
      5 long jx(int n)
      6 {
      7 	if(n==0)
      8 		return 1;
      9 	else
     10 		return n*jx(n-1);
     11 }
     12 long jx2(int n)
     13 {
     14 	long result =1;
     15 	for(int i=n;i>0;i--)
     16 	{
     17 		result=result*i;
     18 	}
     19 	return result;
     20 }
     21 
     22 int main()
     23 {
     24 	for(int num=0;num<10;num++)
     25 	{
     26 		cout<<"递归:"<<num<<"!="<<jx(num)<<endl;
     27 		cout<<"迭代:"<<num<<"!="<<jx2(num)<<endl;
     28 
     29 	}
     30 
     31 	system("pause");
     32 	return 0;
     33 }
     34 
     35 

    VS2010运行结果:

    image

  • 相关阅读:
    Training: WWW-Robots
    Training: Stegano I
    Encodings: URL
    利用Nginx实现域名转发 不修改主机头
    C++删除目录和复制目录函数
    获取文件大小的函数
    日志打印函数
    拉起上级目录程序
    安卓TabHost页面
    有趣的人形时钟
  • 原文地址:https://www.cnblogs.com/luanxin/p/8875295.html
Copyright © 2011-2022 走看看