杨辉三角的打印
2016-04-06 20:28
323 查看
1、首先总结出杨辉三角的规律:第n行的m个数可表示为 C(n-1,m-1)。
2、找出第n行第m个数是我们应该打印的第几个数
由图可以看出每一行的两个数之间都需要打印一个空格,
所以我们要打印出来的第m个数应该是该行实际的第2 * m - 1 个数。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
3、然后根据这个规律来编写java代码。
结果,当输入的n=8的时候,输出的结果如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
2、找出第n行第m个数是我们应该打印的第几个数
由图可以看出每一行的两个数之间都需要打印一个空格,
所以我们要打印出来的第m个数应该是该行实际的第2 * m - 1 个数。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
3、然后根据这个规律来编写java代码。
package sort; import java.util.Scanner; public class Trigon1 { public static void main(String[] args) { Scanner temp = new Scanner(System.in); System.out.println("请输入杨辉三角的行数"); int n = temp.nextInt(); way(n); } /* * 打印三角前面的空格 */ public static void way(int n) { for (int i = 1; i <= n; i++) { for (int j = 1; j <= n - i; j++) { System.out.print(" "); } /* * 打印三角里面的数值 */ for (int j = 1; j <= 2 * i - 1; j++) { if (i == 1) { System.out.print("1"); } else { if (j % 2 == 0) {// 打印每两个数值之间 的空格 System.out.print(" "); } else {// 根据总结出来的规律打印出第i行第j个数的数值 if (j == 1) { System.out.print("1"); } else { int a = Mnlti((j + 1) / 2 - 1);// 调用阶乘的那个封装 int b = Mnlti1(i - 1, (j + 1) / 2 - 1);// 调用从n乘到j那个封装。 System.out.print(b / a); } } } } System.out.println(""); } } public static int Mnlti(int n) {// n的阶乘的方法的封装 return (n == 1 || n == 0) ? n : n * Mnlti(n - 1); } public static int Mnlti1(int n, int j) {// 从n乘到j的阶乘的封装 int c = n; n = 1; for (int i = c; i > c - j; i--) { n *= i; } return n; } }
结果,当输入的n=8的时候,输出的结果如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
相关文章推荐
- 用python写makefile
- UITextfield的一些属性
- 二分图相关问题
- react native中使用react-native-viewpager实现的商品展示添加点击事件
- 初识ANSI C标准
- leetcode——58——Length of Last Word
- 学习javaEE每一天2016.4.6
- Spring MVC Junit4 单元測试 JunitTest
- spring junit class path resource [ /com/config/spring-core.xml] cannot be opened because it does not exist
- Java学习之垃圾回收
- 逻辑斯谛回归(代价函数,梯度下降) logistic regression--cost function and gradient descent
- 假日出行 什么样的移动电源才靠谱
- HTTP头的Expires与Cache-control
- TimesTen与Oracle字符集查询
- iOS 开发技巧 更新
- 默认参数
- 20135316王剑桥Linux内核学习记笔记第七周
- WPF TextBox自动滚动到最户一行
- Tcl -- unset
- Nginx性能优化----配置篇