グループプログラミングアルゴリズムラダーコンペティション L1-015 オバマと一緒に正方形を描く (15 点) (Java)

トピックは次のとおりです。

オバマ米大統領は、すべての人にプログラミングを学ぶよう呼びかけただけでなく、コードを書くことで模範を示し、米国史上初めてコンピューターコードを書いた大統領となった。2014 年末、コンピューター サイエンス教育週間の正式な開始を祝うために、オバマ大統領は非常に単純なコンピューター コードを作成しました。それは、画面上に正方形を描くというものでした。これであなたも彼と一緒に絵を描くことができます!

入力形式:

正方形の辺の長さ N (3≤N≤21) を示す行と、正方形の辺を構成するいくつかの文字をCスペースで区切って入力します。

出力フォーマット:

指定された文字Cによって描かれた正方形を出力します。ただし、行間隔が列間隔より大きいことに注意してください。そのため、結果をより正方形に見せるために、出力する行数は実際には列数の 50% (切り上げ) になります。

入力例:

10 a

出力サンプル:

aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa

クラスメートは私に、複雑そうに見えて実際は比較的単純なことをするように頼んだ。

質問を見ると、得られる情報は、辺の長さ N (3≤N≤21) の範囲に、正方形   の構成する特定の文字をCスペースで区切って加えたものにすぎません。出力される行数は実際には列数です。50% (切り上げ) コードを見てください。


import java.util.Scanner;

public class LadderRace {
    public static void main(String[] args) {
        code();
    }
    public static void code() {
       /**
         * Java api 中的 Math.round()方法
         */
        Scanner sc = new Scanner(System.in);
        int columnVal = sc.nextInt();
        String LineVal = sc.nextLine();
        /**
         * 这里科普一个基础   在java中 当被除数是奇数时只取整数部分
         * 例如9/2 结果会是4  要改变这种情况,需要把至少其中之一操作数变成浮点数,如9.0/2或9/2.0或9.0/2.0等等
         */
        // 外层控制行 内层控制列
        // 条件那里也可以用Math.round(columnVal/2.0) 为什么用2.0请看上面
        for (int i = 1; i <= Math.round(columnVal % 2 == 1 ? columnVal / 2 + 1 : columnVal / 2); i++) {
            for (int j = 1; j <= columnVal; j++) {
                //trim()  去空格
                System.out.print(LineVal.trim());
            }
            //走完一行换行
            System.out.println();
        }
    }
}

上記で2つの方法を提供しました

(1) 1つは、除数を浮動小数点型に変更することです。 

(2) 2つ目は余りで判断する 

結果を見てみましょう:

 わかりました。わからないことがあれば、プライベート メッセージを送ってください。また次回お会いしましょう~~~

おすすめ

転載: blog.csdn.net/qq_45104282/article/details/128241163