博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【练习】Java实现的杨辉三角形控制台输出
阅读量:5103 次
发布时间:2019-06-13

本文共 4575 字,大约阅读时间需要 15 分钟。

1 import java.util.Scanner;  2   3 /**  4  * YangHui_tst01  5  * @author HmLy  6  * @version 000  7  * - - - - - - -  8  * 练习代码。(注释比较多)  9  * 主方法用于实现功能: 10  * 请求输入指定杨辉三角形大小(自然不能是1) 11  * 然后打印该三角形。 12  *  13  * 上下分割线可动态变动 ---- 这上面,合适的长度其实只是试出来的 ....  14  * - - - - - - - 15  *  16  * 另,小发现: 17  * import放在文档注释下头,vsc就不支持识别它里头的"@"了。。。。。   18  */ 19 // 20  21 public class YangHui_tst01 { 22     public static void main(String[] args) { 23         System.out.println(">>=== === program_ONN=== === >>\n"); 24         /** 25          * 杨辉三角形 26          */ 27         Scanner scn = new Scanner(System.in); 28  29         System.out.print("# 请输入指定的杨辉三角的层数 :  | "); 30         int yangHui_largeGet = scn.nextInt(); 31  32         int[][] x_YHui3JX = new int[yangHui_largeGet][];//遍历就"< yangHui_largeGet"就行。。 33  34         System.out.print("# "); 35         System.out.println("指定的层数 :                  | "+ yangHui_largeGet); 36         //System.out.println("# ---- --- --- ---- --- --- ---- -" + " ---- --- --- ---- --- --- ---- -"); 37  38  39          40  41  42         //
<动态分割线尝试>
43 System.out.print("# ---- --- --- ---- --- -"); 44 for (int strxs = 1; strxs < yangHui_largeGet; strxs++) { 45 System.out.print("- ---- -- - ---- -"); 46 }//for_strxssssssss 47 System.out.print("\n"); 48 //
49 50 51 52 53 //下面应该不需要请求用户输入了? 54 //造杨辉 55 56 57 //如果large不完全指定,那是不是后面还要用new来腾出空间来?。。。 58 59 for (int i = 0; i < yangHui_largeGet; i++) { 60 x_YHui3JX[i] = new int[i + 1]; 61 }//new 阶梯 62 63 64 65 66 67 68 69 //x_YHui3JX[1][1] = 1; 70 71 //x_YHui3JX[0][0] = 1;//[0][0]是1 。。。 72 73 for (int i = 0; i < 2; i++) { 74 for (int jj = 0; jj <= i; jj++) {
//上面没指定单独 75 x_YHui3JX[i][jj] = 1; 76 } 77 }//遍历输入三角头。 78 79 80 81 82 //for (int i = 2; i <= yangHui_largeGet; i++) {
//从 1 开始...?... // no! from 2! .... 83 // for (int jj = 1; jj <= i; jj++) {
//这边 jj 的最大 同步于 i 。。。//这个就别从 2 开始了。。 84 /* ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 85 * 不对,一行一列的话是[0][0]。。。 86 * 上面注释掉。 87 */ 88 // 89 90 91 //for (int i = 1; i <= yangHui_largeGet; i++) {
//[i=0]不必遍历;从[i=1]开始。 92 // for (int jj = 0; jj <= i; jj++) {
//这边 jj 的最大 同步于 i 。。。//这个就别从 2 开始了。。 93 /* ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 94 * 上面也不对,三角头不只一个数。 95 * 看公式,三角头是有第二行的。 96 */ 97 // 98 99 100 //遍历表左壁!101 for (int i = 2; i < yangHui_largeGet; i++) {102 x_YHui3JX[i][0] = 1;103 }//for left KABE104 105 106 107 108 109 110 for (int i = 2; i < yangHui_largeGet; i++) {
//[i=0]根据,不必遍历;从[i=1]开始。111 x_YHui3JX[i][i] = 1;//遍历右壁(那么下面jj就是
<=i了。)112 for (int jj = 1; jj < i; jj++) {
//jj不能从 0 开始,否则,下标会出现[-1]。。。。 --> 所以,还要遍历的不仅仅三角头。113 //(其实,可以设定别处皆 0 。 但不那样,省硬件资源。)114 x_YHui3JX[i][jj] = x_YHui3JX[i - 1][jj - 1] + x_YHui3JX[i - 1][jj];115 }//forjj116 117 //输入到数组,就不用换行了。。。118 }//fori119 120 //上面应该搞~~输出~~造表算是搞完了;121 122 //--------------------------------------123 124 //下面搞输出。125 System.out.println("# ");126 for (int i = 0; i < yangHui_largeGet; i++) {127 System.out.print("# \t"); //不换行。128 for (int bloki = 0; bloki < yangHui_largeGet - i; bloki++) {129 System.out.print("\t");130 }//for_bloki131 for (int jj = 0; jj <= i; jj++) { //这里jj遍历就到i别忘了,再往外的连初始化都不算了。。。。(不过,先说好,没试。。。完了下面多来个遍历,试试。。)132 System.out.print(""+ x_YHui3JX[i][jj] +"\t\t" );133 }//forjj134 System.out.println();135 }//fori136 137 138 139 140 141 //
<动态分割线尝试>
142 System.out.print("# ---- --- --- ---- --- -");143 for (int strxs = 1; strxs < yangHui_largeGet; strxs++) {144 System.out.print("- ---- -- - ---- -");145 }//for_strxssssssss146 System.out.print("\n");147 //
148 149 //System.out.println("# ---- -"+"-- --- -"+"--- --- "+"--- ----"+" -" + " ---- "+"--- --- "+"---- ---"+" --- ---"+"- -");150 151 System.out.println("\n>> === ===program_OFF === ===>>");152 }//main153 }//pubclass

输出三角形的上下分割线可动态变化。。。

 

转载于:https://www.cnblogs.com/senwren/p/YangHui_tst01.html

你可能感兴趣的文章
Blender插件之Panel
查看>>
工具类网站收藏
查看>>
python 遍历
查看>>
CSS 技巧积累
查看>>
Search Insert Position - LeetCode
查看>>
C++输入输出流学习笔记
查看>>
Sqlserver2014 迁移数据库
查看>>
TAR 命令
查看>>
【菜鸟做水题】: 杭电1004
查看>>
MySql update inner join!MySql跨表更新 多表update sql语句?如何将select出来的部分数据update到另一个表里面?...
查看>>
我最宏大的个人愿望
查看>>
北漂周记--第5记--拼命编程
查看>>
比赛总结一
查看>>
SpringBoot项目打包
查看>>
JSP的3种方式实现radio ,checkBox,select的默认选择值
查看>>
Linux操作系统 和 Windows操作系统 的区别
查看>>
《QQ欢乐斗地主》山寨版
查看>>
文件流的使用以及序列化和反序列化的方法使用
查看>>
Android-多线程AsyncTask
查看>>
第一个Spring冲刺周期团队进展报告
查看>>