倒三角怎么实现

今天去面试了写一个程序输出到三角,题目说只能用for循环,我用了while循环,面试关说要用for循环。
不会,请问怎么实现?




*

我晕怎么这个问题出现了几次呀?

我上次也回答过:
[code="java"]static void print(int m) {

int max = 2*m-1;//正方形边长。

int len = max * max;//正方形中的格子数

int row = 1 ;//行数

int left = 0;//左边起始位置的前一个位置。

int right = max;//右边终止位置

int count = 0;//第row行的星号个数

int total = max* row;

for (int i = 1; i <= len; i++) {

if(left < i && i <= right ){

System.out.print("*");

} else {

System.out.print(" ");

}

if( i == total) {

System.out.println();

++row;

count = (max - ((m+1 -row)*2-1))/2;

total = max* row;

left = total - max +count;// max * (row-1)+ count;

right = total-count;

}

}

}

[/code]
这儿:[url]http://www.iteye.com/problems/80038#solutions[/url]

最近看到很多这个题目。。。
能说说是哪里题目啊
[code="java"]

StringBuilder sb=new StringBuilder("*********");
for(int i=0;i<5;i++){
System.out.println(sb);
int n=sb.length()-1;
sb.deleteCharAt(n);
sb.deleteCharAt(n-1);
sb.insert(0,' ');
}

[/code]

[code="java"]编程实现:
..........
.........
........
.......
......
.....
....
...
..
.

public class Text1 {

public static void main(String[] args) {
    int i,j;
    for(i=0;i<10;i++){
        for(j=i;j<10;j++){
            System.out.print(".");
       }
        System.out.println();
    }
}

}
[/code]

少次循环,将10改成5

[code="java"]class Aa
{
public static void main(String[] args)
{
int z=5;
for(int i=0;i<5;i++)
{

  for(int j=0;j<i ;j++)
  {
    System.out.print(" ");
  }

  for(int k=0;k<z ;k++)
  {
    System.out.print("*");
  }
  z--;
  System.out.println();
}

}
}[/code]

[url]http://www.iteye.com/problems/80034[/url]
这里就有,我上次回答过,怎么面试都出这样没品位的题目

其实while循环也行!不过面试官可能考考你数学!呵呵。

while循环和for循环其实是等价的,蛋疼的面试官。我索性写了一个比之前自己那个更好的版本:
[code="java"]import java.util.Arrays;

public class PrintTriangle {
/**
* @param ch 打印的字符
* @param lines 打印的行数
*/
public static void print(char ch, int lines) {
int n = 2 * lines - 1;
char[] str = new char[n];
Arrays.fill(str, ch);
int index = 0;
for (int i = 0; i < lines; i++) {
System.out.println(new String(str));
str[index] = ' ';
str[n - index - 1] = ' ';
index++;
}
}

public static void main(String[] args) {
    print('*', 5);
    print('#', 7);
}

}[/code]
就一层for循环

大家都玩上这个题了?
这个题,这几天我至少见过3个了
要不来比比看谁能用最少的代码写出来这个?

[quote]要不来比比看谁能用最少的代码写出来这个?[/quote]

代码简洁而且效率高,还是效率优先!