java练习——用循环输出等腰三角形

java练习——用循环输出等腰三角形_第1张图片

问题分析:由图,给定一个整数n,需要输出一个高为n,底为2n-1的等腰三角形 。问题关键在于如何判断一个n*(2n-1)的空间内每一个点是否输出*,如何得出输出*的条件(不满足条件输出空格),其实这是一个很简单的线性规划问题,这里简要地说一下过程。建立坐标系后,高为high的等腰三角形的两条斜边的解析式为y=-x+high+1和y=x-high+1,.而围成等腰三角形部分的区域即可表示为y>=-x+high+1, y>x-high+1,x>=1,x<=2*high-1,y>=0.y<=high这一组不等式组,(x从1开始取值的是为了使判断条件中逻辑表达式的不等号的严格性与线性规划所得不等式组的不等号严格性一致)


具体实现代码如下

import java.util.Scanner;

public class IsoscelesTriangle {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		System.out.print("请输入等腰三角形的高:");
		int high=sc.nextInt();
		System.out.println("高为"+high+"的等腰三角形如下:");
		for(int y=1;y<=high;y++){
			for(int x=1;x<=2*high-1;x++){
				if((y>=-x+high+1)&&(y>=x-high+1))
					System.out.print(y==1?'^':'-');
				else System.out.print(' ');
			}
			System.out.println("");
		}
	}
}

运行结果:

java练习——用循环输出等腰三角形_第2张图片

其中第一行的^通过一个额外的条件判断判断是否为第一行即可。

你可能感兴趣的:(java练习——用循环输出等腰三角形)