今天去面试了写一个程序输出到三角,题目说只能用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]
代码简洁而且效率高,还是效率优先!