-3

我怎样才能在java中做到这一点?:

    * * * * * * *
       * * * * *
          * * *
             *
          * * *
       * * * * *
    * * * * * * *

这是我的答案^_^

for (int i=7;i>=1;i-=2 ) {
for (int j=i;j<7;j++ ) {
System.out.print(" " );
}for (int k=1;k<i+1;k++) {
System.out.print(" *" );
}System.out.println( );
 }   
for (int i=3;i<=7;i+=2 ) {
for (int j=7;j>i;j--) {
System.out.print(" " );
}for (int k=1;k<=i;k++ ) {
System.out.print(" *" );
}System.out.println( );

}

我也想知道如何做到这一点:

    * *
    * * * *
    * * * * * *
    * * * * * * *
    * * * * * *
    * * * *
    * *

我现在正在尝试

4

3 回答 3

1

想想一个 7 行的正方形,如果*.

然后,你所做的是:

在此处输入图像描述

你需要做的是:

在此处输入图像描述

将您之前所做的红线区域转换为空格并将*添加到空白区域

自己编写自己的代码,将来会对您有所帮助:)

编辑:好的,仅供参考:

       for (int i=0;i<4;i+=1 ) {
            for (int j=0;j<7;j++ ) {
                if(j>i&&j<(7-(i+1))){
                    System.out.print("  ");
                }
                else
                    System.out.print(" *" );
            }
            System.out.println( );
        }  
        for (int i=4;i<7;i+=1 ) {
            for (int j=7;j>0;j-- ) {
                if(j<(i+1)&&j>(7-(i))){
                    System.out.print("  ");
                }
                else
                    System.out.print(" *" );
            }
            System.out.println( );
        }  
于 2012-12-03T10:37:46.563 回答
0

一种方法是使用 2 个循环,一个用于上半部分,一个用于底部。在两个处理星星和/或另一个处理空格的循环中嵌套一个 for 循环。

还有更多,我将不得不编写代码:)

一旦你得到这个,你将能够做第二个。

这个问题更多的是逻辑而不是语言技能的测试。如果您因为它的 java 而遇到问题,那么我建议您更多地关注语言基础知识,然后尝试编写代码。

于 2012-12-03T10:25:23.953 回答
0
for (int i = 1, j = 7; i <= 7 && j >= 0; i++, j--) {
    for (int i2 = 0; i2 < i - 1; i2++) {
        System.out.print(" ");
    }
    for (int m = i - 1; m < j; m++) {
        System.out.print("*");
    }

    for (int j2 = j; j2 > 0; j2--) {
        System.out.print(" ");
    }
    System.out.println();
}

只是为了上半部分给你一些方向,它可能不是有效的解决方案,它只是为了工作目的

于 2012-12-03T10:40:34.053 回答