Java面试题(3)- 打印等腰三角形

    在前一家公司某次听到我们组长给一个面试者出了道题:给我打印一个正三角形。结果是那位面试者没有写出来。
    我倒是来了兴趣,苦思冥想了好一阵子,这个貌似还真有点难度,我就找了个时间问我们组长这个怎么整,才弄明白他误以为等腰三角形就是正三角形。
    我就顺手把等腰三角形的代码写了出来,但正三角形却没有头绪,还望诸位大拿赐教?
等腰三角形代码:
public class PrintTriangle {
	public static void main(String[] args) {
		printTriangle(5);
	}
	
	public static void printTriangle(int len) {
		for(int i = 0; i < len; i++){
			for(int j=len-1; j>i; j--){
				System.out.print(" ");
			}
			for(int j=0; j<=i; j++){
				System.out.print("* ");
			}
			System.out.println();
		}
	}
}

打印结果为:
    *
   * *
  * * *
* * * *
* * * * *
下面的代码是从Google搜来的:
public class PrintTriangle2 {
	public static void main(String[] args) {
		printTriangle(5);
	}
	
	public static void printTriangle(int len) {
		int a = 0;
		int b = 0;
		for (int i=1; i<=len; i++) {
			if (a != (len - i)) {
				System.out.print(" ");
				a++;
				i = i - 1;
			} else if (b != (2 * i - 1)) {
				System.out.print("*");
				b++;
				i = i - 1;
			} else if (a == (len - i) && b == (2 * i - 1)) {
				System.out.println();
				a = 0;
				b = 0;
			}
		}
	}
}

打印结果为:
    *
   ***
  *****
*******
*********
不知道为什么打印结果帖出来都变不正常了。

你可能感兴趣的:(java,编程,code,面试)