递归打印循环数列

/*
* 不使用循环、局部变量(方法或者代码块)、成员变量,将一个整数N
* 按照2N,4N,8N的方式输出来 ,当整数的值大于900时,按照之前的输出倒序再打印出来。
* 举例:123 246 492 984 984 492 246 123,123为起始值。
*
*/

  1. public class TestRecursion {
  2. public static void main(String[] args) {
  3. TestRecursion test = new TestRecursion();
  4. test.go(123);
  5. }
  6. public void go(int i){
  7. System.out.println(i);
  8. //递归调用并给定出口
  9. if(i<900){
  10. go(2*i);
  11. }
  12. //在递归结束后又依次结束
  13. System.out.println(i);
  14. }
  15. }
时间: 2024-08-05 10:15:59

递归打印循环数列的相关文章

递归与循环

如果我们需要重复多次计算相同的问题,通常可以选择递归或者循环 递归的好处是代码简洁 但是递归也有明显的缺点: 递归是由于函数调用自身,而函数调用是需要有时间和空间的消耗的.每一函数调用,都需要在内存栈中分配空间以保存参数,返回地址和临时变量,而且往栈中压入数据和弹出数据都需要时间. 递归中有可能很多计算都是重复的.递归的本质是把一个大问题分解成小问题,但是多个小问题之间会有重叠的部分 递归可能会引发问题:调用栈溢出. 斐波拉契数列 public class Exam9_Fibonacci { p

黑马程序员----java基础---递归概述、递归和循环的区别

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.递归函数,通俗的说就是函数本身自己调用自己... 如:n!=n(n-1)! 你定义函数f(n)=nf(n-1) 而f(n-1)又是这个定义的函数..这就是递归 定义:程序调用自身的编程技巧称为递归( recursion). 递归做为一种算法在程序设计语言中广泛应用. 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小

15.输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点, 用递归和循环两种方法完成树的镜像转换

转载请注明出处:http://www.cnblogs.com/wuzetiandaren/p/4260432.html  声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己也方便有类似问题的朋友,本文的思想也许有所借鉴,但源码均为本人实现,如有侵权,请发邮件表明文章和原出处地址,我一定在文章中注明.谢谢. 题目:输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点, 用递归和循环两种方法完成树的镜像转换. 题目分析:

Shell脚本递归打印指定文件夹中全部文件夹文件

#!/bin/bash #递归打印当前文件夹下的全部文件夹文件. PRINTF() { ls $1 | while read line #一次读取每一行放到line变量中 do [ -d $1/$line ] && { DIR="$1/$line" echo $DIR } DIR1=`dirname $DIR` #求路径. A=`ls -F $DIR1 | grep / | grep "\<$line\>"` #推断line是不是一个文件

Shell脚本递归打印指定目录中所有目录文件

#!/bin/bash #递归打印当前目录下的所有目录文件. PRINTF() { ls $1 | while read line #一次读取每一行放到line变量中 do [ -d $1/$line ] && { DIR="$1/$line" echo $DIR } DIR1=`dirname $DIR` #求路径. A=`ls -F $DIR1 | grep / | grep "\<$line\>"` #判断line是不是一个目录.

UVA1626 - Brackets sequence(区间DP--括号匹配+递归打印)

题目描述: 定义合法的括号序列如下: 1 空序列是一个合法的序列 2 如果S是合法的序列,则(S)和[S]也是合法的序列 3 如果A和B是合法的序列,则AB也是合法的序列 例如:下面的都是合法的括号序列 (),  [],  (()),  ([]),  ()[],  ()[()] 下面的都是非法的括号序列 (,  [,  ),  )(,  ([)],  ([(] 给定一个由'(',  ')',  '[', 和 ']' 组成的序列,找出以该序列为子序列的最短合法序列. 思路:真是经典的题目,区间DP

递归--练习8--noi1788Pell数列

递归--练习8--noi1788Pell数列 一.心得 5 1. 6 //直接递归Time Limit Exceeded 7 //那就记忆化递归 8 2. 9 直接记忆化递归后还有问题 10 a[k]=2*f(k-1)%32767+f(k-2)%32767; 11 说明这句话超出范围了,所以修改成了如下 12 a[k]=(2*(f(k-1)%32767)+f(k-2)%32767)%32767; 13 就AC了 16 #define Max 1000005 17 using namespace

Lua非常有用的工具——递归打印表数据

Lua是一种非常小巧的语言.虽小,但五脏俱全. 在Lua中,我认为最最核心的数据结构就是表.表不仅可用作数组,还可以用作字典.Lua面向对象的实现也是用表实现的. 表对于Lua实在是太重要了!所以,在开发与调试过程中,让表可视化是非常迫切的需求.可Lua标准库里没有递归显示表中所有数据的函数. 于是,凭着对Lua的兴趣,我写了一个函数用于递归打印表中所有的数据. 废话不多话,如下为源代码: -----------------------------------------------------

递归打印lua中的table

递归打印lua中的table,并写到文件里: 1 local pairs_by_keys = function(inTable) 2 local temp = {} 3 for k, v in pairs(inTable) do 4 temp[#temp + 1] = k 5 end 6 7 local compare = function(a, b) 8 if type(a) == type(b) then 9 return a < b 10 elseif type(a) == "num