wodezbf 发表于 2013-2-3 11:34:04

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;}}}}
打印结果为:
    *
   ***
*****
*******
*********
不知道为什么打印结果帖出来都变不正常了。
页: [1]
查看完整版本: Java面试题(3)