您的位置:首页 > 移动开发 > 微信开发

Java小程序之用*打印正/倒立三角形

2016-04-19 17:17 585 查看
题目:用Java编写一个根据输入的行数和正倒,用”*”打印三角形

代码如下:

文件名:TrianglePrinter.java

public class TrianglePrinter {
/**
* 打印正立着的三角形
*
*/
public void printUprightTriangle(int x) {

for(int i=1;i<=x;i++){
for(int j=1;j<=x-i;j++){
System.out.print(" ");
}
for(int k=1;k<=i;k++){
System.out.print("* ");
}
System.out.println();
}
}

/**
* 打印倒立着的三角形
*
*/
public void printUpSideDownTriangle(int x){

for(int i=1;i<=x;i++){
for(int j=1;j<=i-1;j++){
System.out.print(" ");
}
for(int k=1;k<=x-i;k++){
System.out.print("* ");
}
System.out.println();
}

}

}


文件名:Test.java

import java.util.Scanner;

public class Test {
public static void main(String[] args) {
TrianglePrinter tp = new TrianglePrinter();
Scanner sc = new Scanner(System.in);
System.out.println("input the height of the triangle you want:");
try {
int x = sc.nextInt();
System.out.println("choose the form :1.upright 2.upsidedown");
try {
int choice = sc.nextInt();
switch (choice) {
case 1:
tp.printUprightTriangle(x);
break;
case 2:
tp.printUpSideDownTriangle(x);
break;
}
} catch (Exception e) {
System.out.println("wrong choice");
}
} catch (Exception e) {
System.out.println("wrong number");
}
sc.close();
}
}


打印正立三角形的思路:

1234* (第1行打印4个空格之后打印1个”* ” ——(n-1)个空格 1个”* “)

123* * (第2行打印3个空格之后打印2个”* ” ——(n-2)个空格 2个”* “)

12* * * (第3行打印2个空格之后打印3个”* ” ——(n-3)个空格 3个”* “)

1* * * * (第4行打印1个空格之后打印4个”* ” ——(n-4)个空格 4个”* “)

* * * * * (第5行打印0个空格之后打印5个”* ” —— (n-5)个空格 5个”* “)

由此得出打印有n行的正立三角形的第i行,需要先打印(n-i)个空格之后打印 i个”*”;

打印倒立三角形的思路:

* * * * * (第1行不打印空格,打印5个”* “——(n-5)个空格 n个”* “)

1* * * * (第2行打印1个空格,打印4个”* “——(n-4)个空格 n-1个”* “)

12* * * (第3行打印2个空格,打印3个”* “——(n-3)个空格 n-2个”* “)

123* * (第4行打印3个空格,打印2个”* “——(n-2)个空格 n-3个”* “)

1234* (第5行打印4个空格,打印1个”* “——(n-1)个空格 n-4个”* “)

由此得出打印有n行的倒立三角形的第i行,需要先打印(i-1)个空格之后打印(n-i)个”*”

初学Java,欢迎大家对错误批评指正,指点迷津
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java