Java实现递归经典案例——三角数字的多种实现方式

三角数字的定义就是:第n个三角数字是 由 1+...+n 所得。

1、的三角数字是 1
2、的三角数字是 1 + 2 = 3
3、的三角数字是 1 + 2 + 3 = 6

1、while循环实现的方式

public int getTriangleNumber(int n)  
    {  
        int totle = 0;  
        while(n>0) // 从1 开始  
        {  
            totle = totle+(n--);  
        }  
          
        return totle;  
    }  

2、for循环方式实现

public int getTriangleNumberByFor(int n)  
    {  
        int totle = 0;  
  
        for(;n> 0; )  
        {  
            totle = totle + n;  
        }  
        return totle;  
    }  

3、数学公式方式实现

public int getTriangleNumberByMath(int n)  
    {  
        return (n*n + n)/2;  
    }  

4、递归方式实现

public int getTriangleT(int n)  
    {  
        int totle = 0;  
        if(n == 1)  
        {  
            return 1; // 退出递归条件,基值情况(base case)  
        }  
        return totle = n + getTriangleT(n-1);  
    }

原帖地址:http://blog.csdn.net/u010708203/article/details/9286885

时间: 2025-01-26 16:34:36

Java实现递归经典案例——三角数字的多种实现方式的相关文章

Java数据结构及算法实例:三角数字_java

/** * 三角数字: * 比达哥斯拉领导下的古希腊数学家发现了一个有趣的数字序列1, 3, 6, 10, 15, 21,... * 你能看出他们有什么规律么? * 对了它的规律就是f(x) = x+ f(x-1) * 想想是不是很像小时候打算盘从1一直加到100啊 */ package al; public class Triangle { public static void main(String[] args) { Triangle triangle = new Triangle();

java算法:递归输出回文数字

java 递归输出回文数字 在google搜一下发现很判断回文的递归程序,很少有递归输出回文的,因此 补缺 例如:参数:4 输出:4321234.可以改写成"abba"字母回文: 程序如下: public class TestDG { public int fun(int var) { if(var>1){ System.out.println(var); System.out.println( fun(var - 1)); } return var; } public stat

Java无限级树(递归)超实用案例_java

如下所示: @Override public String getEmployeeBysup(String employeeID) { String str=""; str = getEmployeeBysupSelas(employeeID, str); return str.substring(0, str.lastIndexOf(",")); } @Override public String getEmployeeBysupSelas(String empl

javascript的理解及经典案例分析_javascript技巧

js的简介: JavaScript是一种能让你的网页更加生动活泼的程式语言,也是目前网页中设计中最容易学又最方便的语言. 你可以利用JavaScript轻易的做出亲切的欢迎讯息.漂亮的数字钟.有广告效果的跑马灯及简易的选举,还可以显示浏览器停留的时间.让这些特殊效果提高网页的可观性. javascript现在可以再网页上做很多很多事情,网页特效,操作dom,html5游戏(基于html5和JavaScript的结合),动画等等特效,还可以实现拉去后台数据(通过ajax),不仅可以做前台还可以做后

《不只是美:信息图表设计原理与经典案例》—— 1.1 理性乐观派观派

1.1 理性乐观派观派 不只是美:信息图表设计原理与经典案例 原本我打算在这章的开头讲述几个有关信息可视化.信息设计和信息图表的正式定义,但没有这样做,一些事情改变了我的想法.一次,我随意浏览<纽约时报>(The New York Times)网站时,一篇关于<理性乐观派:一部人类经济进步史>(The Rational Optimist: How Prospersity Evolves)(2010年)的评论引起了我的注意,该书的作者是英国科学评论家Matt Ridley. 这篇评论

DOS命令八大经典案例

DOS命令八大经典案例 DOS已逐渐远去,我们每天都习惯地使用着Windows             98/Me/2000/XP,可是你了解Windows中的DOS吗?其实在有些时候DOS还是比Windows要方便快捷得多,毕竟这个是操作系统的经典之作.下面就笔者在使用DOS过程中摸索的技巧总结成八大案例来说明一下,希望多多少少能对读者在使用电脑的过程中有点启发和帮助.              案例一."FC"-文件对比             众所周知,在安装软件时,一般会在注册

php处理json格式数据经典案例总结_php技巧

本文实例总结了php处理json格式数据的方法.分享给大家供大家参考,具体如下: 1.json简介: 何为json? 简 单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序. 通俗点讲,它是一种数据的存储格式,就像php序列化后的字符串一样. 它也是一种数据描述,比如:我们将一个数组序列化后存放,就可以很容易的反序列化后应用:json也是如此,只不过它搭建的是

Android Zxing生成二维码经典案例分享_Android

本文实例为大家解析了Zxing生成二维码的经典案例,供大家参考,具体内容如下 1.首先呢,先编译 compile 'com.google.zxing:core:3.2.1' 2.实战 public class QRCode { private static int IMAGE_HALFWIDTH = 50;//宽度值,影响中间图片大小 /** * 生成二维码,默认大小为500*500 * * @return bitmap */ public static Bitmap createQRCode(

Java中递归原理实例分析_java

本文实例分析了Java中递归原理.分享给大家供大家参考.具体分析如下: 解释:程序调用自身的编程技巧叫做递归. 程序调用自身的编程技巧称为递归( recursion).递归做为一种算法在程序设计语言中广泛应用. 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量.递归的能力在于用有限的语句来定义对象的无限集合.  递归的三个