我试图在Java中使用for循环打印出这个模式,但我有点卡住了。
zzzzz
azzzz
aazzz
aaazz
aaaaz
aaaaa
我可以打印:
a
aa
aaa
aaaa
aaaaa
使用:
String i = " ";
int a = 0;
for (i="a";i.length()<=5;i=i+"a")
System.out.println(i);
和
zzzzz
zzzz
zzz
zz
z
使用:
String i = " ";
for (i="zzzzz";i.length()>0;i=i.substring(0,i.length()-1))
System.out.println(i);
但我无法弄清楚如何将它们结合起来。我正在考虑替换i
的子字符串,并且每次都将结束索引的值增加一个,但不确定是否对其进行编码。我从这样的事情开始:
String i = " ";
String b = " ";
for (i="zzzzz";i="aaaaa";i=i.replace(i.substring(0,))
System.out.println(i);
有什么想法吗?
答案 0 :(得分:8)
伪代码:
for(i <- 0 to 5) {
print( i times "a" followed by (5 - i) times "z")
print a new line
}
现在用Java实现它。
答案 1 :(得分:6)
您可以使用循环
递增或递减多个变量for (int a = 0, z = 5; a <= 5 ; a++, z-- )
{
System.out.println(a+" "+z);
}
会输出
0 5
1 4
2 3
3 2
4 1
5 0
答案 2 :(得分:2)
在java中:
public class Pattern {
public static void main(String [] args) {
for(int i=0;i<6;i++) { //This works out the number of lines
String line = "";
for(int a=0;a<i;a++) {
line+="a";
}
for(int z=0;z<(5-i);z++) {
line+="z";
}
System.out.println(line);
}
}
}
答案 3 :(得分:1)
Z = 5
A = 0
while ( Z >= 0 )
{
for ( i = 0; i < A; i++ ) print 'A';
for ( i = 0; i < Z; i++ ) print 'Z';
print newline;
++A;
--Z;
}
是一种方式。
答案 4 :(得分:1)
String AA = "aaaaa";
String ZZ = "zzzzz";
for (int i = 0; i <= 5; i++) {
System.out.println(AA.substring(i) + ZZ.substring(5 - i));
}
答案 5 :(得分:0)
使用一个附加变量来保持a / z边框的位置。在每次迭代中增加该变量的值。
答案 6 :(得分:0)
您可以尝试以下方法:
public class pattern2
{
public static void main()
{
int i,j,k,num=0;
for(i=1;i<=6;i++)
{
for(j=1;j<=num;j++)
System.out.print("a");
for(k=6;k>i;k--)
System.out.print("z");
System.out.println();
num++;
}
}
}