プロが教えるわが家の防犯対策術!

Javaのプログラミングに詳しい方に質問です。

画像のプログラムを次のような出力結果になるように変更したいのですが、分かる方いるでしょうか。


「 1 2 3 4 5 6 7 8 9
  2 4 6 8 10 12 14 16 18
  3 6 9 12 15 18 21 24 27
  4 8 12 16 20 24 28 32 36
  5 10 15 20 25 30 35 40 45
  6 12 18 24 30 36 42 48 54
  7 14 21 28 35 42 49 56 63
  8 16 24 32 40 48 56 64 72
  9 18 27 36 45 54 63 72 81 」




ちなみに今のプログラムだと

「 iは0.jは0jは1jは2
  iは1.jは0jは1jは2
  iは2.jは0jは1jは2
  iは3.jは0jは1jは2
  iは4.jは0jは1jは2  」

と出力されるようになっています。



ですがここからどう変更すればいいのかが分かりません。

分かる方いましたら、回答宜しくお願いします

「Javaのプログラム問題が分かりません 」の質問画像

A 回答 (5件)

> 「 1 2 3 4 5 6 7 8 9


>   2 4 6 8 10 12 14 16 18
>   3 6 9 12 15 18 21 24 27
>   4 8 12 16 20 24 28 32 36
>   5 10 15 20 25 30 35 40 45
>   6 12 18 24 30 36 42 48 54
>   7 14 21 28 35 42 49 56 63
>   8 16 24 32 40 48 56 64 72
>   9 18 27 36 45 54 63 72 81 」

この数値の並びはどういう法則に基づいて並んでいるかを理解されていますか?
それが理解できていないので「何を入力したら、それをどう処理し、何を出力するか」といった処理アルゴリズムが分かっていないだけではありませんか?
つまりJavaなどの実装に使用するプログラム言語に依存した問題ではなく、「
どういう手順で処理したら求める結果が得られるか」が見えていないだけだと。。。

ちなみに出力は1行目、2行目、3行目・・・と進みますから、各列の先頭(=左端)の値はどう変化し、各行の列方向は先頭(=左端)の値をどう加工して行ったら求める数列になるかを、問題にある上記引用部分をよくよく見て考えればわかることかと思います。
なお、アルゴリズムは日常ご自身が使用されている自然言語(=日本語)で行います。
ソースコードを書くことはそれを使用するプログラム言語に翻訳するだけのことです。

参考まで。
    • good
    • 1

class Main


{
 public static void main(String[] args)
 {
  for (int i = 0; i < 9; i++) {

   for (int j = 0; j < 9; j++) {
    System.out.print((i + 1) * (j + 1) + " ");
   }

   System.out.println();

  }
 }
}
    • good
    • 0

答えを教えて貰うのは簡単だけど


ここまで初歩の初歩だと、これ自力で出来ないと
ー歩も先へ進めないと思うよ。
    • good
    • 0
この回答へのお礼

別にプログラマーになるつもりではなく、これを極めるつもりもないのですが、これだけは書けるように努めていきたいと思います。

ご回答ありがとうございました。

お礼日時:2021/05/18 16:01

それぞれの行を要素とするような文字列の配列を作って, それを for でまわして表示すれば OK.

    • good
    • 0
この回答へのお礼

はい

お礼日時:2021/05/18 16:01

>別にプログラマーになるつもりではなく、


>これを極めるつもりもないのですが

そんな遠大な話ではないです。

初心者以前の状態から一歩踏み出すには
自分で試行錯誤することが必要だということです。

こたえを写しているうちは千年かけても時間の無駄です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!