トピックは次のとおりです。
オバマ米大統領は、すべての人にプログラミングを学ぶよう呼びかけただけでなく、コードを書くことで模範を示し、米国史上初めてコンピューターコードを書いた大統領となった。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つ目は余りで判断する
結果を見てみましょう:
わかりました。わからないことがあれば、プライベート メッセージを送ってください。また次回お会いしましょう~~~