-
2021-02-26 14:17:53
void printTriangle(int n)
{
// build an auxiliary 2D array
final int t[][] = new int[n][n];
int i = 1;
for (int s = n - 1; s <= 2 * (n - 1); s++)
{
for (int x = s - n + 1; x < n; x++)
{
t[x][s - x] = i++;
}
}
// print the array
for (int y = 0; y < n; y++)
{
for (int x = 0; x < n; x++)
{
if (t[x][y] > 0)
{
System.out.printf("%3d", t[x][y]);
}
else
{
System.out.printf(" ");
}
}
System.out.println(); // start new line
}
}
>构建一个大小为n的辅助2D数组.
>按照对角线的方式将数字放入数组中,从1到n.代码中的s表示x y sum.每个对角线的总和是恒定的.在第一对角线(最长的一个)中,和等于n-1.在第二对角线中,和为1,n.在最后的“对角线”(右下角)中,总和为2 *(n – 1).这正是我们的循环:for(int s = n – 1; s< = 2 *(n - 1); s).得到和和x我们可以用简单的减法得到y,y = s - x.
>打印阵列.数组的每个单元格都用0(int的默认值)初始化.因此,如果单元格为零,我们只打印3个空格,以保留三角形的形状.
PS.我的代码是为“教育目的”而编写的:)以简单的方式展示如何完成它.它没有针对速度和内存进行优化.
更多相关内容 -
java 简单数字三角形打印
2020-02-02 14:49:38右三角形打印我们要打印这样的数字三角形 看一下代码 for(int i=1;i<=5;i++){ for(int k=0;k<5-i;k++){ System.out.print(" "); } for(int j=i;j>0;j–){ System.out.print(j); } System.out.println(); } ... -
Java 基础-08:打印三角形
2022-03-14 17:22:421、根据手动输入数字,打印该数字的直角三角形(直角在右上方) 2、根据手动输入数字,打印该数字的直角三角形(直角在左下方) 3、根据手动输入数字,打印该数字的直角三角形(直角在右下方) 4、根据手动输入...目录
1、根据手动输入数字,打印该数字的直角三角形(直角在右上方)
2、根据手动输入数字,打印该数字的直角三角形(直角在左下方)
3、根据手动输入数字,打印该数字的直角三角形(直角在右下方)
4、根据手动输入数字,打印该数字的直角三角形(直角在左上方)
1、根据手动输入数字,打印该数字的直角三角形(直角在右上方)
例如:输入数字为5,打印如下所示图形
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入一个数字: "); int howManyRows = input.nextInt(); for (int row = 1; row <= howManyRows+1; row++) { for (int col = 1; col <= row - 1; col++) { System.out.print(" "); } for (int col = 1; col <= howManyRows-row +1; col++) { System.out.print(col+" "); } System.out.println(); } }
2、根据手动输入数字,打印该数字的直角三角形(直角在左下方)
例如:输入数字为5,打印如下所示图形
5
5 4
5 4 3
5 4 3 2
5 4 3 2 1public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入一个数字: "); int howManyRows = input.nextInt(); for (int row = 1; row <= howManyRows ; row++) { for (int col = howManyRows; col > howManyRows - row ; col--) { System.out.print(col+" "); } System.out.println(); } }
3、根据手动输入数字,打印该数字的直角三角形(直角在右下方)
例如:输入数字为5,打印如下所示图形
5
4 5
3 4 5
2 3 4 5
1 2 3 4 5public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入一个数字: "); int howManyRows = input.nextInt(); for (int row = 0; row < howManyRows ; row++) { for (int col = 1 ; col <= howManyRows-row; col++){ System.out.print(" "); } for (int col = howManyRows-row ; col <= howManyRows; col++) { System.out.print(col+" "); } System.out.println(); } }
4、根据手动输入数字,打印该数字的直角三角形(直角在左上方)
例如:输入数字为5,打印如下所示图形
5 4 3 2 1
5 4 3 2
5 4 3
5 4
5public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入一个数字: "); int howManyRows = input.nextInt(); for (int row = 0; row <= howManyRows; row++) { for (int col = 5; col > row ; col--) { System.out.print(col+" "); } System.out.println(); } }
5、根据手动输入数字,打印该数字的等边三角形(正三角形)
例如:输入数字为5,打印如下所示图形
5
4 5
3 4 5
2 3 4 5
1 2 3 4 5public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入一个数字: "); int howManyRows = input.nextInt(); for (int row = 0; row < howManyRows ; row++) { for (int col = howManyRows ; col > row;col--){ System.out.print(" "); } for (int col = howManyRows-row ; col <= howManyRows; col++) { System.out.print(col+" "); } System.out.println(); } }
6、根据手动输入数字,打印该数字的等边三角形(倒三角形)
例如:输入数字为5,打印如下所示图形
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入一个数字: "); int howManyRows = input.nextInt(); for (int row = 0; row < howManyRows ; row++) { for (int col = 0; col <= row - 1; col++) { System.out.print(" "); } for (int col = row+1 ; col <= howManyRows; col++) { System.out.print(col+" "); } System.out.println(); } }
总结:可以是数字显示的形式打印三角形,也可以是 ' * '号形式打印三角形
思路:1、首先要考虑要什么形式的三角形,考虑循环次数(第一层循环)
2、那些三角形空格怎么做的,也是要考虑每行要空多少空格也是在(第二层循环)(不需 要空格的不考虑这一步)
3、从哪个数字开始,每行的特点(第二层循环)
-
JAVA之如何打印数字三角形——算法优化
2022-06-05 10:52:57对打印数字三角形的一些小小的改进Java语言程序设计与数据结构(基础篇)第5章 课后练习题_leonard_pku的博客-CSDN博客_java第五章课后编程题
首先感谢大佬的启发,本人只是在大佬的基础上进行的一点点小小的改进
package com.Project2; import java.util.Scanner; public class Test17 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入一个整数:"); int number = input.nextInt(); for (int i = 0; i < number; i++) //一行一行的输出 { for (int j = 0; j < number - i - 1; j++) //输出空格 System.out.printf(" "); for (int j = i +1 ;j > 0; j--) //输出1及其左边的数字 System.out.printf("%4d", j ); for (int j = 0; j < i; j++) //输出1(不含)其右边的数字 System.out.printf("%4d",j + 2); for (int j = 0; j < number - i - 1; j++) //输出空格 System.out.printf(" "); System.out.println(); } } }
其实只是换了个角度理解,但是感觉上简单了不少。
-
使用java打印三角形
2021-10-03 17:37:47打印三角形: 1.了解for循环 语法结构: for(初始化变量;判断条件;更新变量){ …代码块/循环体… } 执行顺序: 1.第一次进入到循环中,初始化变量1次 2.判断条件 - 结果必须是boolean类型 2.1... -
Java - 打印三角形
2021-01-13 20:23:04解决思路:先输出空格形式的倒置的三角形,每行输出行数 n*2-1 数量的" * “,得到三角形(为了显示方便,将” “替换成”-") 代码: import java.util.Scanner; public class Triangle { public static void ... -
Java打印直角三角形
2021-03-04 00:53:14public class Test14 { public static void main(String[] args) { //控制行数 for (int i = 1; i <= 5; i++) { for (int j = 1; j <= i; j++) { System.out.print("*"); } ... System.o -
如何在java中打印数字三角形
2021-07-16 15:14:13I need to produce a triangle as shown:122333444455555and my code is:int i, j;for(i = 1; i <= 5; i++){for(j = 1; j <= i; j++){System.out.print(i);}System.out.print("\n");}Producing a triangle the... -
JAVA实现打印三角形
2021-12-08 10:50:46总结就是:外层循环控行数内层循环控个数(最外层的for循环控制打印的行数,内层的循环控制打印三角形的个数) 控制台打印三角形 public static void getStar(){ Scanner input = new Scanner(System.in); ... -
Java使用嵌套循环打印数字三角形
2021-07-16 15:41:24I am trying to print the following using a nested loop in Java:1 2 3 4 5 61 2 3 4 51 2 3 41 2 31 21but it's coming out like the following:1 2 3 4 5 62 3 4 5 63 4 5 64 5 65 66Here is my code:for (int i... -
Java打印三角形(双层for循环)
2022-01-10 14:45:07Java打印三角形(双层for循环) 1.第一个三角形: 打印样式: 外层for循环控制行数,内层for循环控制“*”的个数 public static void demo01(){ //行数:4行 for(int i=1;i<=4;i++){ /* 找规律: 第一行... -
Java打印三角形
2021-05-23 09:12:15Java打印三角形 思路详解:打印三角形就是把一个矩形分为4分,取中间两份,左右两份输出空值即可 public class Trangle { public static void main(String[] args) { //打印三角形5行 for (int i = 1; i <=5; ... -
java实现打印杨辉三角形
2021-02-12 19:37:53杨辉三角形由数字排列,可以把它看成一个数字表,其基本特征是两侧数值为1,其他位置的数值是其正上方的数值与左上角数值之和.创建YanghuiTriangle类,在该类的主方法中创建一个二维数组,并指定二维数组的第一维长度,这... -
【Java】输出打印正直角三角形和倒直角三角形
2022-01-02 11:20:25打印正直角三角形,代码如下: public class Dome2 { public static void main(String[] args) { //星星行数 for (int i = 0; i < 5; i++) { //星星个数 for (int j = 0; j <= i; j++) { ... -
java实现各种数字三角形
2021-04-10 15:05:441、实现直角三角形效果: 源代码:package square;public class SanJiao {public static void main(String[] args) {int i, j;for (i = 0; i < 10; i++) {for (j = 0; j < 9 - i; j++) {// 打印空格System.out... -
java打印等腰三角形方法之一(持续更新)
2021-08-31 23:10:28import java.util.Scanner; public class San { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.print("请输入一个数字 "); int n=scanner.nextInt(); for... -
使用java打印直角三角形(朝左)
2018-06-02 14:35:59声明:图形的打印考验的是逻辑思维能力,与计算机语言熟练程度无关。逻辑思维能力弱的同鞋,做不了研发可以做开发。一、效果图代码:package com.test; /** * 直角三角形 * @author PETER * */ public class ... -
打印任意大小的空心三角形(java)
2022-07-03 14:52:13打印任意大小的空心三角形(java) -
java打印杨辉三角形 (漂亮格式)
2020-07-21 22:30:42打印出杨辉三角形(要求打印出10行) 思路 找规律,除了第一和第二行,其余每行都是开头结尾是1 且数字等于上一行左右两边的和 为了格式好看,用二维数组,默认全是0,遇到有数字就赋值,没数字的保持0,打印的... -
打印数字三角形
2019-10-24 10:41:51程序目标:打印数字三角形。(重点在于找规律) 数据:需要打印的行数。 步骤: 1.提示用户输入需要打印的行数; 2.根据所需输出的三角形进行for循环嵌套; 3.重点在于找出每一行的规律,注意使用printf来控制... -
Java基础打印全三角形——接收用户输入的行数,打印对应的全三角形
2021-08-28 19:50:39效果如图: 思路:找规律,每一排的"*"个数依次为:1,3,5,7...,2n-1;... System.out.print("请输入要打印的三角形的行数:"); int n; //这里加了while死循环用来避免输入的数值不合理等情况 while(. -
JAVA 打印三角形
2020-12-19 07:37:133、建立1号空白三角形 可以看,第一行是输出4个空格,第二行输出3个空格,第三行输出2个,第四行输出1个,第五行没有 从这个规律可以看出,是依次递减的规律,那么如何实现呢? 我们可以想象从1到5,中间有四个数字... -
基础Java练习02:打印直角三角形
2022-03-08 16:19:20* 功能:使用for循环嵌套打印直角三角形 * 作者:孤梦 * 日期:2022年03月08日 */ public class practice02 { public static void main(String[] args) { int i, j; //定义两个变量 for (i = 1;i <= 9; i+... -
Java 打印各种直角三角形和乘法表
2021-03-16 20:28:09class T { public static void main(String[] args) { int i,j,k=1; System.out.println("直角三角形,左上"); for(i=5;i!=0;--i) { for(j=i;j!=0;--j) System.out.print("*"); System.out.println(); } Sys... -
用Java语言输出空心三角形
2022-06-04 19:25:38思路分析 代码实现 拓展 用Java输出空心菱形 思路分析: 先死后活 优化: 缺点: 代码实现 方法2(上下部分) 目标: 思路分析 先死后活 优化: 缺点: 代码实现 -
Java打印杨辉三角形/帕斯卡三角形(含注释)
2022-03-28 13:28:32import java.util.*; public class Pascals_triangle_print { public static void main(String[] args) { Scanner line = new Scanner(System.in); System.out.println("How many lines do you want to ...