再简单一点你就分成两个循环来写。public class Test { public static void main(String[] args) { final int row = 5; int ch = 'A'; for (int i = 1; i <= row; ++i) { for (int j = 0; j < i && j <= row - i; ++j) { System.out.print((char) (ch) + " "); ch++; }
System.out.println(); } } }
和樓上的程式其實沒差多少,只是想說,這種漸增又漸減對稱的問題,蠻合適用絕對值來做。int maxWidth = 3; int max = maxWidth-1; char c = 'A'; for(int i=-max; i<=max; i++){ for(int j=0;j<=max-Math.abs(i);j++){ System.out.print(c++ +" "); } System.out.println(); }
/*这样的题目没有技术含量,java主要研究的是面向对象的。*/ public class Ptest { public static void main (String[] args) { final int N = 5; int i,j; char c = 'A'; for(i=0; i<N; i++){ for(j=0; j<(N-2*Math.abs(N/2-i))/2+1; j++) { System.out.print(c++); } System.out.println(); } } } 结果:/*final int N = 5;*/ A BC DEF GH I 结果:/*final int N = 9;*/ A BC DEF GHIJ KLMNO PQRS TUV WX Y public class Diamond { public static void main (String[] args) { int i,j; char c1 = ' '; char c2 = 'A'; char c3 = 'P'; for(i=0;i<9;i++){ for(j=0;j<Math.abs(4-i);j++) { System.out.print(c1); } for(j=0;j<9-2*Math.abs(4-i);j++) { if(i<5) System.out.print(c2++); else System.out.print(c3--); } System.out.println(); } } } 结果: A BCD EFGHI JKLMNOP QRSTUVWXY PONMLKJ IHGFE DCB A public class Diamond { public static void main (String[] args) { int i,j; char c1 = 'A'; char c2 = 'P'; for(i=0; i<9; i++){ for(j=0; j<9-2*Math.abs(4-i); j++) { if(i<5) System.out.print(c1++); else System.out.print(c2--); } System.out.println(); } } } 结果: A BCD EFGHI JKLMNOP QRSTUVWXY PONMLKJ IHGFE DCB A 我感觉我在做数学题、、、
public static void main(String[] args) {
final int row = 5;
int ch = 'A';
for (int i = 1; i <= row; ++i) {
for (int j = 0; j < i && j <= row - i; ++j) {
System.out.print((char) (ch) + " ");
ch++;
}
System.out.println();
}
}
}
int max = maxWidth-1;
char c = 'A';
for(int i=-max; i<=max; i++){
for(int j=0;j<=max-Math.abs(i);j++){
System.out.print(c++ +" ");
}
System.out.println();
}
/*这样的题目没有技术含量,java主要研究的是面向对象的。*/
public class Ptest {
public static void main (String[] args) {
final int N = 5;
int i,j;
char c = 'A';
for(i=0; i<N; i++){
for(j=0; j<(N-2*Math.abs(N/2-i))/2+1; j++)
{
System.out.print(c++);
}
System.out.println();
}
}
}
结果:/*final int N = 5;*/
A
BC
DEF
GH
I
结果:/*final int N = 9;*/
A
BC
DEF
GHIJ
KLMNO
PQRS
TUV
WX
Y
public class Diamond {
public static void main (String[] args) {
int i,j;
char c1 = ' ';
char c2 = 'A';
char c3 = 'P';
for(i=0;i<9;i++){
for(j=0;j<Math.abs(4-i);j++)
{
System.out.print(c1);
}
for(j=0;j<9-2*Math.abs(4-i);j++)
{
if(i<5) System.out.print(c2++);
else System.out.print(c3--);
}
System.out.println();
}
}
}
结果:
A
BCD
EFGHI
JKLMNOP
QRSTUVWXY
PONMLKJ
IHGFE
DCB
A
public class Diamond {
public static void main (String[] args) {
int i,j;
char c1 = 'A';
char c2 = 'P';
for(i=0; i<9; i++){
for(j=0; j<9-2*Math.abs(4-i); j++)
{
if(i<5) System.out.print(c1++);
else System.out.print(c2--);
}
System.out.println();
}
}
}
结果:
A
BCD
EFGHI
JKLMNOP
QRSTUVWXY
PONMLKJ
IHGFE
DCB
A
我感觉我在做数学题、、、
char c='A';
StringBuffer sb;
for(int i=-2;i<=2;i++){//有多少行
sb=new StringBuffer();
for(int j=0;j<=2-Math.abs(i);j++){//每行有多少列
sb.append(c++).append(" ");//没输出一次字符就自加1
}
System.out.println(sb);
}
}
char c='A';
StringBuffer sb;
for(int i=-2;i<=2;i++){//有多少行
sb=new StringBuffer();
for(int j=0;j<=2-Math.abs(i);j++){//每行有多少列
sb.append(c++).append(" ");//每输出一次字符就自加1
}
System.out.println(sb);
}
}