Java小程序之用*打印正/倒立三角形
2016-04-19 17:17
585 查看
题目:用Java编写一个根据输入的行数和正倒,用”*”打印三角形
代码如下:
文件名:TrianglePrinter.java
文件名:Test.java
打印正立三角形的思路:
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,欢迎大家对错误批评指正,指点迷津
代码如下:
文件名: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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树