zoukankan      html  css  js  c++  java
  • 递归算法

    问题描述

       编写如下定义的递归函数的递归算法

    g(m,n)=0 当m=0,n>=0时,g(m,n)=g(m-1,2n)+n当m>0,n>=0时

    代码     

    View Code
     1 View Code 
     2 #include<stdio.h>
     3 int fun(int m, int n)
     4 {
     5     
     6     if(m==0&&n>=0)
     7         return 0;
     8     else
     9       return fun(m-1,2*n)+n;//我的了个去,把2*n写成2n,我太不细心了,好好做。
    10 }
    11 
    12 int main()
    13 {
    14   int m,n,s;
    15   printf("请输入两个参数:");
    16   scanf("%d,%d",&m,&n);
    17   s=fun(m,n);
    18   printf("%d\n",s);
    19   return 0;
    20 }

    问题描述:

     写出求递归函数F(n)的递归算法,并消除递归:

    F(n)=n+1 当n=0;F(n)=n*F(n/2);当n>0

    代码     

    递归的代码:

    View Code
    #include<stdio.h>
    int fun(int n)
    {
        if(n>0)
            return n*fun(n/2);
        else
            return n+1;
    }
    int main()
    {
      int n;
      printf("请输入n的值:\n");
      scanf("%d",&n);
      printf("%d\n",fun(n));
     return 0;
    }

    非递归的代码:

    View Code
     1 int main()
     2 {
     3   int n,s=1;
     4   printf("请输入n的值:\n");
     5   scanf("%d",&n);
     6   while(n>0)
     7   {
     8     s=s*n;
     9     n=n/2;
    10   }
    11   printf("%d\n",s);
    12  return 0;
    13 }

    总结     

     递归算法,弄清楚其中的逻辑关系。

  • 相关阅读:
    UU跑腿
    Java基础之接口与抽象类的区别
    经典面试题:Redis为什么这么快?
    isBlank与isEmpty
    阅读联机API文档
    从文本中取出链接地址 并检测链接地址能否打开
    2019-01-19=树莓派学习总结
    单片机知识点
    Linux 编程题
    嵌入式基础知识
  • 原文地址:https://www.cnblogs.com/wj204/p/3048026.html
Copyright © 2011-2022 走看看