Algs4-1.2.7以下递归函数的返回值是什么?

1.2.7以下递归函数的返回值是什么?
public static String mystery(String s)
{
   int N=s.length();
   if (N<=1) return s;
   String a=s.substring(0,N/2);
   String b=s.substring(N/2,N);
   return mystery(b)+mystery(a);
}
解:将mystery的参数s反序。


public class Test
{
  public static void main(String[] args) 
  {
    String s1="0123456789";
    String s2="123456789";
    StdOut.printf("s1=%s,mystery(s1)=%s\n",s1,mystery(s1));
    StdOut.printf("s2=%s,mystery(s2)=%s\n",s2,mystery(s2));
    }//end main
 
  public static String mystery(String s)
  {
      int N=s.length();
      if (N<=1) return s;
      String a=s.substring(0,N/2);
      String b=s.substring(N/2,N);
      return mystery(b)+mystery(a);
  }
}//end class Test

原文地址:https://www.cnblogs.com/longjin2018/p/9848840.html

时间: 2024-10-01 00:31:38

Algs4-1.2.7以下递归函数的返回值是什么?的相关文章

帮助大家理解一下递归函数的返回值...

如题: 递归函数往往可以简化我们的代码,尤其是对树的遍历和利用回溯算法写代码的时候,但是递归函数的返回值往往是困扰我们的. 总体来说,我们先要理解函数的调用过程,函数调用过程会用栈来保存函数的返回值和过程,而递归函数就是调用自身函数的过程,所以也是用栈存储,这样就比较容易理解了. 下面一段代码可以帮助大家理解递归函数的返回值. 1 package test; 2 3 4 public class RecursionValueReturn { 5 6 /* 7 *目的: 8 * 递归返回值测试 9

函数,递归函数,返回值作用域,插入排序

函数数学定义:y=f(x) ,y是x的函数,x是自变量.y=f(x0, x1, ..., xn)Python函数由若干语句组成的语句块.函数名称.参数列表构成,它是组织代码的最小单元完成一定的功能函数的作用结构化编程对代码的最基本的封装,一般按照功能组织一段代码封装的目的为了复用,减少冗余代码代码更加简洁美观.可读易懂函数的分类内建函数,如max().reversed()等库函数,如math.ceil()等 def语句定义函数def 函数名(参数列表):函数体(代码块)[return 返回值]函

递归函数返回值学习

分析以下代码 int dp(int i) { int& ans=d[i]; //为该表项声明一个引用,简化对它的读写操作. if(ans>0) return ans; ans=1; for(int j=0;j<n;j++){ if(G[i][j]){ int tmp=dp(j); ans=ans>tmp+1?ans:tmp+1; } } return ans; } 这是个DAG下的动态规划.是矩形嵌套的dp函数.粘这个代码的原因是为了反复体会这个ans在这个递归函数中的使用技巧.

尾递归 递归函数中,递归调用是整个函数体中最后的语句,且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归,空间复杂度是O(1)

什么是递归深度 递归深度就是递归函数在内存中,同时存在的最大次数. 例如下面这段求阶乘的代码: Java: int factorial(int n) { if (n == 1) { return 1; } return factorial(n - 1) * n; } Python: def factorial(n): if n == 1: return 1 return factorial(n-1) * n C++: int factorial(int n) { if (n == 1) { re

函数参数,返回值,递归函数

函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形式 无参数,无返回值 无参数,有返回值 有参数,无返回值 有参数,有返回值 定义函数时,是否接收参数,或者是否返回结果,是根据 实际的功能需求 来决定的! 如果函数 内部处理的数据不确定,就可以将外界的数据以参数传递到函数内部 如果希望一个函数 执行完成后,向外界汇报执行结果,就可以增加函数的返回值

返回类型和return语句:无返回值函数,有返回值函数,返回数组指针

重点: 1.return语句功能:终止当前正在执行的函数并将控制权返回到调用该函数的地方.Return语句两种形式: Return: Return expression; 2.返回void的函数不要求非得有return语句,因为在这类函数的最后一句后面会隐式地执行return. 3.Void函数如果想中间退出,可以使用return,作用相当于break,提前退出. 4.一个返回类型是void的函数也可以使用return expression形式,不过return语句的expression必须是另

具有返回值的递归

一个函数只能有一个返回值,具有返回值的递归函数若平行的多次调用自身,那么将会产生多个返回值,这是一个bug.所以在具有树形多分枝结构的递归中,一般使用void作为返回值类型,形参在每条路径中作为值传递,在出口处对这些值进行保存或比较输出.例如求树高 的两种写法: 1 struct Node{ 2 int val; 3 Node* child; 4 Node* sibling; 5 Node(){ 6 child=NULL; 7 sibling=NULL; 8 } 9 }; 10 int heig

37 py为什么要使用函数函数中添加文本注释 没有返回值的函数

第一课:为什么要使用函数 首先 要知道 本课程的主要讲解的内容为: 1.为什么要创建函数 2.***函数的概念是:将一段可能别重用的代码封账到一个代码段里面,然后通过函数的参数 ,控制函数的动态部分.// 如何来定义python中的函数和使用函数 *** 3.如何创建一个函数 4.如何为函数添加文档注释,如何获取函数的文档注释 5.函数如何返回一个值 6.改变函数的参数值 7.关键字参数与参数默认值 8.可变参数 9.如何将序列中的元素单独作为参数值传递给函数 10.函数中的作用域 11.递归函

javascript函数(声明,传参,返回值,递归)

javascript函数(声明,传参,返回值,递归) 1.函数的基本概念 函数:是由事件驱动的或者当他被调用时可执行的可重复使用的代码块. 空调是由遥控器控制或者当开关打开时,可运行的家用电器(工具) 特点: 封装代码----使代码更简洁 重复使用---在重复功能的时候直接调用就好 执行时机---随时可以在我们想要执行的时候执行 2.函数的创建和执行 1. 函数的创建 1.声明式 函数声明的关键字 : ==function== function 关键字 和 var 关键字的行为几乎一致,都会在内