//采用一个二维数组打印杨辉三角
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. JS(二)

    上周给大家介绍了一下JS基础中一点东西,今天给大家介绍一下JS基础中一个重要部分,循环和函数. 04-JS中的循环结构 一.[循环结构的步骤] 1.首先要先声明循环变量. 2.判断循环条件 3.执行循 ...

  2. 深入浅出数据结构C语言版(21)——合并排序

    在讲解合并排序之前,我们先来想一想这样一个问题如何解决: 有两个数组A和B,它们都已各自按照从小到大的顺序排好了数据,现在我们要把它们合并为一个数组C,且要求C也是按从小到大的顺序排好,请问该怎么做? ...

  3. 600集Python从入门到精通教程(懂中文就能学会)

    目录大纲: 本套教程15天 1-3   天内容为Linux基础命令 4-13  天内容为Python基础教程 14-15 天内容为 飞机大战项目演练 视频概括: 第一阶段(1-3天): 该阶段首先通过 ...

  4. P1050

    问题 F: P1050 时间限制: 1 Sec  内存限制: 128 MB提交: 37  解决: 27[提交][状态][讨论版] 题目描述 一个字符串A的子串被定义成从A中顺次选出若干个字符构成的串. ...

  5. P1035

    P1035 时间限制: 1 Sec  内存限制: 128 MB提交: 87  解决: 36[提交][状态][讨论版] 题目描述 给出一张n*n(n< =100)的国际象棋棋盘,其中被删除了一些点 ...

  6. pongo英雄会-幸运数题解

    显然我们只要知道1~x范围有多少幸运数(用f(x)表示),lucky(x,y)=f(y)-f(x-1). 解法1. 计算排列数 由于y<=1000000000这个规模,我们不能暴力验证每个数是否 ...

  7. 自测-5 Shuffling Machine

    Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techn ...

  8. python中strip函数的用法

    python中往往使用剥除函数strip()来对用户的输入进行清理.strip函数的最一般形式为: str.strip('序列') 其中,序列是一段字符串,该函数表示从头或者从尾部开始进行扫描,如果扫 ...

  9. 程序员 各种PDF格式电子书--免费网盘资源

    Java <设计模式之禅(完整高清版)> 链接:http://pan.baidu.com/s/1bo7noMb 密码:5kve  <重构_改善既有代码的设计> 链接:http: ...

  10. C# 文件下载

    在a标签href属性直接写文件地址有些文件不会进入下载(例如 图片类型),浏览器会自动打开预览这时可以使用下面这种方式进行文件下载 Html代码 <a href="/DownloadF ...