前提・実現したいこと
個数を示す数値を入力し、その個数分だけ 0 ~ 9 の数字を表示し,数字は 0, 1, 2, 3, , の順に表示し、9 の次は 0 に戻る.
というプログラムを作成したいです。
試したこと
BufferedReader br = new BufferedReader(
new InputStreamReader( System.in ) );
int count = Integer.parseInt( br.readLine() );
for( int i = 0 ; i < count ; i++ )
ここからどうすればいいかわかりません。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
for( int i = 0 ; i < count ; i++ )
ここからどうすればいいかわかりません。
iを10で割った時の余りを表示すれば良いです。
剰余演算子%
の使い方を調べてください。
便乗。こんな方法もあります。
Java
1System.out.println( 2 IntStream.range(0, count) 3 .map(n -> n % 10) 4 .mapToObj(String::valueOf) 5 .collect(Collectors.joining(", ")) 6);
物凄く気が向いたら分析してみると面白いかもしれません。
投稿2018/11/23 06:57
編集2018/11/23 08:01総合スコア35660
0
複数の方法で書いてみました。
一般的には、最初の方法をつかうとおもいますが, 最後のCollections.nCopies を使う方法もそれなりに味わいがあると思います。
java
1import java.io.BufferedReader; 2import java.io.IOException; 3import java.io.InputStreamReader; 4import java.util.Collections; 5 6class Main { 7 public static void main(String[] args) throws NumberFormatException, IOException { 8 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 9 int count = Integer.parseInt(br.readLine()); 10 11 for (int i = 0; i < count; i++) { 12 System.out.print(i % 10); 13 } 14 System.out.println(); 15 16 String pattern = "0123456789"; 17 String ans = ""; 18 for (int i = 0; i < count; i++) { 19 ans += pattern.charAt(i % 10); 20 } 21 System.out.println(ans); 22 23 ans = ""; 24 for (int i = 0; i < count / 10 + 1; i++) { 25 ans += pattern; 26 } 27 System.out.println(ans.substring(0, count)); 28 29 System.out.println((new String(new char[count / 10 + 1]).replace("\0", pattern)).substring(0, count)); 30 System.out.println(String.join("", Collections.nCopies(count / 10 + 1, pattern)).substring(0, count)); 31 } 32}
今後、学習を進めて行く場合も、一つの方法で満足せずに別の方法も検討するべきです。
その上で今はどの方法を選ぶのがベターなのか? を考えるようにすると良いと思います。
投稿2018/11/23 07:57
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
自分も書いてみた。
剰余算ってコストかかる計算だった気がするから剰余算を使わずに書いてみた。
java
1import java.util.*; 2import java.util.stream.*; 3 4public class Main { 5 public static void main(String[] args) throws Exception { 6 int count = 24; 7 String str = Stream.generate(() -> IntStream.range(0, 10)) 8 .flatMapToInt(s -> s) 9 .limit(count) 10 .mapToObj(Integer::toString) 11 .collect(Collectors.joining(", ")); 12 System.out.println(str); 13 } 14} 15
投稿2018/11/24 01:28
総合スコア20651
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。