Java学习(十)

·输出一个杨辉三角:

杨辉三角的性质:

每行数字左右对称,由1开始逐渐变大,然后变小,回到1。

第n行的数字个数为n个。

第n行的数字和为2^(n-1)。

每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角形。

第n行的第一个数为1,第二个数为1*(n-1),第三个数为1*(n-1)*(n-2)/2,第四个数为1*(n-1)*(n-2)/2*(n-3)/3...以此类推。

public class YangHuiSanJiao {

    public static void main(String[] args) {

      int[][] a = new int[10][10];

      for (int i = 0; i < 10; i++) {

          a[i][i] = 1;

          a[i][0] = 1;

      }

      for (int i = 2; i < 10; i++) {

          for (int j = 1; j < i; j++) {

              a[i][j] = a[i - 1][j - 1] + a[i - 1][j];

          }

      }

      for (int i = 0; i < 10; i++) {

          for (int k = 0; k < 2 * (10 - i) - 1; k++) {

              System.out.print(" ");

          }

          for (int j = 0; j <= i; j++) {

              System.out.print(a[i][j] + "  ");

          }

          System.out.println();

      }

    }

}

 ·算法:

使用一个二维数组yh[][]储存杨辉三角形的数据,行和列的大小为所需要输出的行数。

使用for循环实验室三角中除了最外层,(不包括底边)的数为1;

使用语句yh[i][j]=yh[i - 1] + yh[i - 1][j]使第i行第j列的数据等于第(i-1)行第(j-1)列的数据与第(i-1)行第(j)列的数据之和,即每个数字等于上一行的左右两个数字之和。

·输出结果如下

 

时间: 2024-10-12 23:20:06

Java学习(十)的相关文章

Java学习十四

学习内容: 1.Junit 一.Junit实例演示步骤 1.引入jar包 junit包需要引入hamcrest-core包,否则会报错 2.测试如下代码 1 package com.junit.test; 2 3 public class Calculator { 4 private static int result; //静态变量,用于存储运行结果 5 public void add(int n){ 6 result=result+n; 7 } 8 public void substract

Java学习十五

学习内容: MyBaits 以前从来没有接触过mybatis,通过今天的学习知道这是一个框架,适用于关注SQL优化和需要频繁更新的项目. 今天做一个关于mybatis项目的入门小程序,效果很不理想. 因为用于maven项目中,遇到两个问题 1.在项目下创建package或class文件时,出现“Source folder is not a Java project.”错误 解决方法:按照网上的解决方法,应该在项目中properties中找project facets,但都找不到是因为根本不在Ja

Java学习十八

学习内容: 1.Java集合 1.自定义的set类添加重复数据需要在实体类中添加hashcode和equals方法. 2.查找set对象信息(以宠物猫为例) //在集合中查找花花的信息并输出 if(set.contains(huahua)){ system.out.println("花花找到了!"); system.out.println(huahua); }else{ system.out.println("花花没找到!"); } //在集合中使用名字查找花花的信

java学习(十六):对象的自定义比较,Comparator和Comparable

通过两个例子实现对象的自定义排序 1.实现Comparator接口. 1 import java.util.ArrayList; 2 import java.util.Collections; 3 import java.util.Comparator; 4 import java.util.List; 5 6 public class StudentComparator implements Comparator<Object> 7 { 8 @Override 9 public int co

Java学习(十五):hashCode的作用

1.hashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用来在散列存储结构中确定对象的存储地址的: 2.如果两个对象相同,就是适用于equals(java.lang.Object) 方法,那么这两个对象的hashCode一定要相同: 3.如果对象的equals方法被重写,那么对象的hashCode也尽量重写,并且产生hashCode使用的对象,一定要和equals方法中使用的一致,否则就会违反上面提到的第2点: 4.两个对象的hashCode相

Java学习(十四):JDBC方式连接数据库举例

java定义了JDBC这一标准的接口和类,为程序员操作数据库提供了统一的方式. 下载对应数据库的jar包,添加到工程内. JDBC的操作方式比较单一,由五个流程组成: 1.通过数据库厂商提供的JDBC类库向DriverManager注册数据库驱动 2.使用DriverManager提供的getConnection()方法连接到数据库 3.通过数据库的连接对象的createStatement方法建立SQL语句对象 4.执行SQL语句,并将结果集合返回到ResultSet中 5.使用while循环读

Java学习(十):Java线程池实例

线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定和管理资源(包括执行任务集时使用的线程)的方法.每个 ThreadPoolExecutor 还维护着一些基本的统计数据,如完成的任务数. Java常用的线程池有四种.Executors.newCachedThreadPool()(无界线程池,可以进行自动线程回收).Executors.newFixedThreadPool(int)(固定大小线程池).Executors.ne

Java学习(十八):二叉树的三种递归遍历

二叉树的三种递归遍历: 1 public class StudentNode 2 { 3 private String name; 4 5 private StudentNode leftNode; 6 7 private StudentNode rightNode; 8 9 public String getName() 10 { 11 return name; 12 } 13 14 public void setName(String name) 15 { 16 this.name = na

恶补java(十)---泛型与集合的再学习

其余的就不多说了,一切都在代码中 package com.gc.generic; /** * JDK5 之前集合对象使用问题: * 1.向集合添加任何类型对象 * 2.从集合取出对象时,数据类型丢失,使用与类型相关方法,强制类型转换 * 存在安全隐患 * * ***************************** * * JDK5中的泛型:允许程序员使用泛型技术限制集合的处理类型 * List<String> list=new ArrayList<String>(); * 从而