更多“用C语言写一个递归算法求N!;(华为面试题)”相关问题
  • 第1题:

    写一个递归算法来实现字符串逆序存储,要求不另设串存储空间。


    参考答案:实现字符串的逆置并不难,但本题“要求不另设串存储空间”来实现字符串逆序存储,即第一个输入的字符最后存储,最后输入的字符先存储,使用递归可容易做到。
      [算法描述]
      void InvertStore(char A[])
      //字符串逆序存储的递归算法。
      {char ch;
      static int i = 0;//需要使用静态变量
      cin>>ch;
      if (ch!= '.') //规定'.'是字符串输入结束标志
      {InvertStore(A);
      A[i++] = ch;//字符串逆序存储
      }
      A[i] = '\0'; //字符串结尾标记
      }

  • 第2题:

    写递归形式的二分检索算法


    参考答案:

  • 第3题:

    若一个问题的求解既可以用递归算法,也可以用递推算法,则往往用(14)算法,因为(15)。

    A.先递归后递推

    B.先递推后递归

    C.递归

    D.递推


    正确答案:D

  • 第4题:

    用一种编程语言写n!的算法。(威盛VIA 2003.11.06 上海笔试试题)


    正确答案:
        

  • 第5题:

    述您的问题,如:请教一道华为公司的C语言面试题目的答案和

  • 第6题:

    用递归算法实现n个相异元素构成的有序序列的二分查找,采用一个递归工作栈时,该栈的最小容量应为______。

    A.n

    B.n/2

    C.log2n

    D.log2(n+1)


    正确答案:D
    解析:二分查找亦称折半查找,其基本思想:设查找表的元素存储在一维数组r[1..n]中,首先将待查的key值与表r中间位置上(下标为mid)的记录的关键字进行比较,若相等,则查找成功:若key>r[mid].key,则说明待查记录只可能在后半个子表r[mid+1..n](注意:是mid+1,而不是mid)中,下一步应在后半个子表中再进行折半查找,若keyr[mid].key,则说明待查记录只可能在前半个子表r[1..mid-1](注意:是mid-1,而不是mid)中,下一步应在前半个子表中再进行折半查找,这样通过逐步缩小范围,直到查找成功或予表为空时失败为止。
      在表中的元素已经按关键字递增(或递减)的方式排序的情况下,才可进行折半查找。
      等概率情况下顺序查找成功的平均查找长度为:当n值较大时,ASLbs≈log2(n+1)-1。

  • 第7题:

    本题利用递归方法求前n个自然数的和(n=10)。


    正确答案:
    第1处:int n
    第2处:return 1
    第3处:return n+add(n-1)
    【解析】递归方法是-种调用程序本身并采用栈结构的算法,第1处定义参数类型;第2处是递归初值;第3处为递归运算。

  • 第8题:

    用递归算法实现n个相异元素构成的有序序列的二分查找,采用一个递归工作栈时,该栈的最小容量应为()。


    答案:D
    解析:

  • 第9题:

    若一个问题的求解既可以用递归算法,也可以用递推算法,则往往用__(1)__算法,因为__(2)__。空白(1)处应选择()

    • A、先递归后递推
    • B、先递推后递归
    • C、递归
    • D、递推

    正确答案:D

  • 第10题:

    数据结构与算法中,下面那些功能可以用递归实现()

    • A、n的阶乘
    • B、1到n的和
    • C、n的k次幂
    • D、字符串逆序

    正确答案:A,B,C,D

  • 第11题:

    关于递归的有关内容描述项正确的是()

    • A、可以采用递归解决汉诺塔游戏的问题
    • B、递归可以分为直接递归与间接递归
    • C、可以采用递归解决求一个数n!问题
    • D、递归就是在过程或函数里调用自身

    正确答案:A,B,C,D

  • 第12题:

    多选题
    汉诺塔问题可以用递归解决,以下也可用递归实现的是()
    A

    求1-n的和

    B

    求n的阶乘

    C

    斐波那契数列

    D

    n^k(^表示幂)


    正确答案: C,D
    解析: 暂无解析

  • 第13题:

    设有一个递归算法如下intfact(intn){//n大于等于0if(n<=0)return1;elsereturnn*fact(n-1);}则计算fact(n)需要调用该函数的次数为()。

    A.n+1

    B、n-1

    C、n

    D、n+2


    参考答案:A
    解释:特殊值法。设n=0,易知仅调用一次fact(n)函数,故选A。

  • 第14题:

    下面描述中,不正确的是( )。

    A.递归法的关键是必须有一个递归终止的条件。

    B.递归算法要求语言具有反复自我调用子程序的能力。

    C.对于同一个问题,递推算法比递归算法的执行时间要长。

    D.递推算法总可以转换为一个递归算法。


    参考答案:C

  • 第15题:

    下面是一个递归Java程序,其功能为 ( )long Factorial(int n){ if(1==n){ return 1; } else return n*Factorial(n-1);}

    A.求1-n的和

    B.求2到n的和

    C.求n的阶乘

    D.求2-n的积


    正确答案:C
    解析:该题考查的是递归调用。在Java中允许方法的递归调用,即允许方法调用自身。当算阶乘的时候最多的是用到递归调用,本题的功能是求n的阶乘。

  • 第16题:

    一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。(C#语言)


    正确答案:
     

  • 第17题:

    补充程序Ccon0310.C,使其实现用递归算法求平方根。求平方根的迭代公式如下:


    /**/doublemysqrt(double,double);/**/
    X1=/**/(x0+a/x0)/2;/**/
    Ymysqrt(/**/a,x1/**/);

  • 第18题:

    请教一道华为公司的C语言面试题目的答案和解析


    题目呢?

  • 第19题:

    关于下面函数,哪一个是错误描述?n为整数deffactorial(n):ifn<=0:returnifn==1:return1returnn*factorial(n-1)

    A.求整数n的阶乘

    B.factorial(5)是函数调用

    C.是递归函数

    D.求任意两个数值n和n-1的乘积


    正确答案:D

  • 第20题:

    汉诺塔问题可以用递归解决,以下也可用递归实现的是()

    • A、求1-n的和
    • B、求n的阶乘
    • C、斐波那契数列
    • D、n^k(^表示幂)

    正确答案:A,B,C,D

  • 第21题:

    若一个问题的求解既可以用递归算法,也可以用递推算法,则往往用__(1)__算法,因为__(2)__。空白(2)处应选择()

    • A、递推的效率比递归高
    • B、递归宜于问题分解
    • C、递归的效率比递推高
    • D、递推宜于问题分解

    正确答案:A

  • 第22题:

    一列数的规则如下:1、1、2、3、5、8、13、21、34......求第30位数是多少,用递归算法实现。


    正确答案: publicclassMainClass
    {
    publicstaticvoidMain()
    {
    Console.WriteLine(Foo(30));
    }
    publicstaticintFoo(inti)
    {
    if(i<=0)
    return0;
    elseif(i>0&&i<=2)
    return1;
    elsereturnFoo(i-1)+Foo(i-2);
    }
    }

  • 第23题:

    单选题
    若一个问题的求解既可以用递归算法,也可以用递推算法,则往往用__(1)__算法,因为__(2)__。空白(1)处应选择()
    A

    先递归后递推

    B

    先递推后递归

    C

    递归

    D

    递推


    正确答案: C
    解析: 暂无解析