//采用一个二维数组打印杨辉三角
class Yanghui1 {
public static void main(String[] args)
{
//设置杨辉三角的行数
int num = 10; //申请二维数组存放杨辉三角数值
int[][] yangHui = new int [num][];
for(int i = 0; i < yangHui.length; i ++)
yangHui[i] = new int[i + 1]; //利用杨辉三角的计算公式,初始化数组
for(int i = 0; i < yangHui.length; i ++)
for(int j = 0; j < yangHui[i].length; j ++)
{
//每一行第一个数和最后一个数都为1
yangHui[i][0] = yangHui[i][i] = 1; if(i > 1 && j > 0 && j < i)
//杨辉三角的值等于其上一层两个值之和
yangHui[i][j] = yangHui[i - 1][j] + yangHui[i -1][j -1];
} //遍历数组,以输出
for(int i = 0; i < yangHui.length; i ++)
{
for(int j = 0; j < (num - i - 1) / 2; j ++)
System.out.print("\t");
for(int j = 0; j < yangHui[i].length; j ++)
System.out.print(yangHui[i][j] + "\t"); System.out.println();
}
} } //采用两个一维数组打印杨辉三角
class YangHui2
{
public static void main(String[] args)
{
int num = 20; //申请UP数组用以存储上一层的数据
int[] up = new int[num];
for(int i = 0; i <= num; i ++)
{
//申请a数组用以存放本层的运算结果
int[] a = new int[i];
for(int j = 0; j < i; j ++)
{
//将本层第一个和最后一个数值赋值为1
if(j == 0 || j == i)
a[j] = up[j] = 1; //当从第三行起,非首尾数字的值等于上方两数只和
if(i > 2 && j !=0 && j != i )
a[j] = up[j - 1] + up[j];
} //将本层的运算结果存到up数组中,以供一下次运算使用
for(int k = 0; k < i; k ++)
up[k] = a[k]; //打印本层数字
for(int k = 0; k < (num - i - 1) / 2; k ++)
System.out.print("\t");
for(int k = 0; k < i; k ++)
System.out.print(a[k] + "\t"); System.out.println();
}
}
} //采用一个一维数组打印杨辉三角
class YangHui3
{
public static void main(String[] args)
{
int num = 10; //申请数组存放杨辉三角的数值
int yangHui[] = new int[(1 + num) * num / 2];
for(int i = 0; i < num; i ++)
{
for(int j = 0; j < (num - i - 1) / 2; j ++)
System.out.print("\t"); //temp表示已经存储的数字个数
int temp = (1 + i) * i / 2;
for(int j = 0; j <= i; j ++)
{
//每一层的首尾数值为1
if(j == 0 || j == i)
yangHui[temp + j] = 1; else
//非首尾数值为上面两数之和
yangHui[temp + j] = yangHui[temp + j - i] + yangHui[temp + j - i - 1];
System.out.print(yangHui[temp + j] + "\t");
}
}
System.out.println();
}
}

三种方式打印杨辉三角形(JAVA实现)的更多相关文章

  1. Java实现线程的三种方式和区别

    Java实现线程的三种方式和区别 Java实现线程的三种方式: 继承Thread 实现Runnable接口 实现Callable接口 区别: 第一种方式继承Thread就不能继承其他类了,后面两种可以 ...

  2. 0036 Java学习笔记-多线程-创建线程的三种方式

    创建线程 创建线程的三种方式: 继承java.lang.Thread 实现java.lang.Runnable接口 实现java.util.concurrent.Callable接口 所有的线程对象都 ...

  3. 三种方式上传文件-Java

    前言:负责,因为该项目他(jetty嵌入式开始SpringMvc)实现文件上传的必要性,并拥有java文件上传这一块还没有被曝光.并 Http 更多晦涩协议.因此,这种渐进的方式来学习和实践上载文件的 ...

  4. java加载配置文件的三种方式

    比如我们要加载db.properties文件 如图: 比如我们要加载source目录下的db.properties文件.就有以下几种方式 第一种是文件io流: public static void l ...

  5. 【java多线程】多线程的创建三种方式--笔记

    申明:线程的概念以及进程的相关概念,可以参考网络上其他资料,这里只讨论多线程是怎么实现. 一.多线程的简单理解 明白什么是多线程,小生通俗一点的理解为:在一个程序里,我想同时让这个程序完成多个任务. ...

  6. java实现HTTP请求的三种方式

    目前JAVA实现HTTP请求的方法用的最多的有两种:一种是通过HTTPClient这种第三方的开源框架去实现.HTTPClient对HTTP的封装性比较不错,通过它基本上能够满足我们大部分的需求,Ht ...

  7. 【转载】java实现HTTP请求的三种方式

    目前JAVA实现HTTP请求的方法用的最多的有两种:一种是通过HTTPClient这种第三方的开源框架去实现.HTTPClient对HTTP的封装性比较不错,通过它基本上能够满足我们大部分的需求,Ht ...

  8. java:struts框架2(方法的动态和静态调用,获取Servlet API三种方式(推荐IOC(控制反转)),拦截器,静态代理和动态代理(Spring AOP))

    1.方法的静态和动态调用: struts.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCT ...

  9. Java反射学习-2 - 获取Class对象的三种方式

    package cn.tx.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import ...

随机推荐

  1. 详解AngularJS中的依赖注入

    点击查看AngularJS系列目录 依赖注入 一般来说,一个对象只能通过三种方法来得到它的依赖项目: 我们可以在对象内部创建依赖项目 我们可以将依赖作为一个全局变量来进行查找或引用 我们可以将依赖传递 ...

  2. 代理模式与java中的动态代理

    前言    代理模式又分为静态代理与动态代理,其中动态代理是Java各大框架中运用的最为广泛的一种模式之一,下面就用简单的例子来说明静态代理与动态代理. 场景    李雷是一个唱片公司的大老板,很忙, ...

  3. unset与unlink

    unset() -- 释放给定的变量 详见->http://www.kuqin.com/php5_doc/function.unset.html unlink() --删除文件    常用于用户 ...

  4. bzoj2730(矿场搭建)

    矿场搭建,不知道为什么,莫名其妙T了在212上,额,zyh数据真的坑. bzoj200轻松跑过啊. 就是点双联通分量缩点,然后标记割点,一个块如果有>=2个割点,则不需要挖矿洞, 如果只有一割点 ...

  5. bzoj4033(树上染色)

    树上染色 有一棵点数为N的树,树边有边权.给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并 将其他的N-K个点染成白色.将所有点染色后,你会获得黑点两两之间的距离加上白点两两 ...

  6. 【bzoj1103】【POI2007】【大都市】(树状数组+差分)

    在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了.不过,她经常回忆起以前在乡间漫步的情景.昔日,乡下有依次编号为1..n的n个小村庄,某些村庄之 ...

  7. Ubuntu16.04下安装redis

    Ubuntu16.04下安装redis 保证网络畅通,选定好下载工作路径,执行以下命令下载redis-3.2.6: sudo wget http://download.redis.io/release ...

  8. Python-MongoDB的驱动安装、升级

    安装pip,并通过此来安装pymongo–Python mongodb驱动 1.下载pip安装包,下载地址:http://pypi.python.org/packages/source/p/pip/p ...

  9. Python统计列表中的重复项出现的次数的方法

    本文实例展示了Python统计列表中的重复项出现的次数的方法,是一个很实用的功能,适合Python初学者学习借鉴.具体方法如下:对一个列表,比如[1,2,2,2,2,3,3,3,4,4,4,4],现在 ...

  10. Laravel框架使用查询构造器实现CURD

    一.什么是查询构造器? ①Laravel 查询构造器(query Builder)提供方便,流畅的接口,用来建立及执行数据库查找语法 ②使用PDO参数绑定,以保护应用程序免于SQL注入因此传入的参数不 ...