質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

再帰

情報工学における再帰とは、プログラムのあるメソッドの処理上で自身のメソッドが再び呼び出されている処理の事をいいます。

Q&A

解決済

1回答

1151閲覧

javaで再帰を使って2Dアレイを埋めるプログラム

Momomo.

総合スコア22

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

再帰

情報工学における再帰とは、プログラムのあるメソッドの処理上で自身のメソッドが再び呼び出されている処理の事をいいます。

0グッド

0クリップ

投稿2017/12/01 07:06

カナダの大学1年生でプログラミングを学びはじめた初心者です。学校の宿題でJAVAでループを使わず再帰(recursion)を使って2D Arrayを埋めるプログラムに取り組んでいます。
先生は授業に関する質問には答えてくれるものの宿題に関する質問には全く答えてくれず、初心者なのでどこから始めたらいいかもわからず苦戦しています。

ユーザーに2つのintを入力してもらい、それをもとにこのような結果をプリントするプログラムです。
(サンプルのアウトプット)
イメージ説明

2つのintを元に、このような仕組みで2Dアレイを埋めていくのですが、、、
![イメージ説明]

質問です。

1)この場合、どうやって2Dアレイのサイズを設定すればいいのでしょうか?
どれぐらいのサイズになるかわからないのでどう設定したらいいかわかりません。

2)2つめの画像にあるような仕組みで2Dアレイを埋めたい場合、ifを使ってコンディションを書いていったら良いのでしょうか?私はこういう風にプログラムを書きましたが、エラーばかりでプログラムが動かず、考え方が合っているのか間違っているのかわかりません。

java

1 public static void fillArray(){ 2 a[0][0]=0; 3 if(j>1) 4 a[0][j]=seq1[j-2]; 5 if(i>1) 6 a[i][0]=seq2[i-2]; 7 if(i==1||j==1) 8 a[i][j]=0; 9 10 11 }

3)仕組みの画像にあるmaxはどのように使ったらよいのでしょうか?java初心者な上に数学音痴なため意味もわからず困っております。

どうか質問に答えていただけたら助かります。
そのほかにもどのように解いたらいいかのアドバイスなどをくださったら幸いです。
よろしく御願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

1)この場合、どうやって2Dアレイのサイズを設定すればいいのでしょうか?

どれぐらいのサイズになるかわからないのでどう設定したらいいかわかりません。

問題に書いてあるけど見落としてるのか、実際書いてないのかわかりませんが、
普通に考えるとSeq1,2の値を全部使うことを考えて、
(Seq1の長さ+2)と(Seq2の長さ+2)でサイズ決まると思います。

2)2つめの画像にあるような仕組みで2Dアレイを埋めたい場合、ifを使ってコンディションを書いていったら良いのでしょうか?私はこういう風にプログラムを書きましたが、エラーばかりでプログラムが動かず、考え方が合っているのか間違っているのかわかりません。

そうです。

3)仕組みの画像にあるmaxはどのように使ったらよいのでしょうか?java初心者な上に数学音痴なため意味もわからず困っております。

{の右側から最大のものを採用します。

投稿2017/12/01 07:27

ozwk

総合スコア13521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Momomo.

2017/12/01 07:32

回答ありがとうございます。 1つめの質問の回答に関してなのですが、どうして(seq1の長さ+2)と(seq2の長さ+2)なのでしょうか?
ozwk

2017/12/01 07:52 編集

a[0][j] = Seq1[j-2]ってあるので Seq1を全部使うとしたら,Seq1の長さをLとした時 a[0][(L-1)+2] = Seq1[(L-1)] ということで、jは0からL+1の範囲をとるはずです。 Seq2についても同様の考えです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問