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

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

新規登録して質問してみよう
ただいま回答率
86.02%
Java

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

再帰

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

Q&A

受付中

javaの再帰のプログラムの穴埋め問題です。

km1023
km1023

総合スコア23

Java

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

再帰

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

0回答

0グッド

1クリップ

595閲覧

投稿2021/05/13 11:36

下記のjavaの問題で悩んでいます。
ご教授ください。
[問題]
図2 は,アルファベットの小文字を2 個入力して,1 個目と2 個目の間にあるすべての小文字(1 個
目がb で2 個目がd ならば,b とc とd.1 個目がe で2 個目がb ならば,b とc とd とe.)を自由に
組み合わせて構成される長さが3 の文字列のすべてを表示するJava のプログラムである.以下に,本
プログラムの動作例を示す.
<動作例>(下線部は入力)
アルファベットの小文字を1 文字入力してください
g
アルファベットの小文字をもう1 文字入力してください
e
eee
eef
eeg
efe
eff
efg
ege
egf
egg
fee
fef
feg
ffe
fff
ffg
fge
fgf
fgg
gee
gef
geg
gfe
gff
gfg
gge
ggf
ggg
このとき,本プログラムのsetNode( )メソッドの中身を記述してプログラムを完成させよ.ただし,
setNode( )メソッドは,再帰的手続きとし,プログラムの他の部分を変更(追加,削除を含めて)しな
いこと.

Java

1import java.util.Scanner; 2 3class Node{ 4 private int value; 5 private Node child[]; 6 7 public void setNode(int value, int digit, int start, int end) { 8 //ここのメソッドの穴埋め問題 9 } 10 11 public int getValue() { 12 return value; 13 } 14 15 public Node getChild(int index) { 16 return child[index]; 17 } 18} 19 20public class AlphaString { 21 private static int index1; 22 private static int index2; 23 24 public static void main(String[] args) { 25 Scanner abc = new Scanner(System.in); 26 27 System.out.println("アルファベットの小文字を1文字入力してください。"); 28 String str1 = abc.next(); 29 char c1 = str1.charAt(0); 30 31 System.out.println("アルファベットの小文字をもう1文字入力してください。"); 32 String str2 = abc.next(); 33 char c2 = str2.charAt(0); 34 35 //アルファベットをabc順に並べ替え 36 index1 = c1 - 'a'; 37 index2 = c2 - 'a'; 38 if(index1 > index2) { 39 int t = index1; 40 index1 = index2; 41 index2 = t; 42 } 43 44 Node root = new Node(); 45 root.setNode(0, 3,index1, index2); 46 47 for(int i = index1; i <= index2; i++) { 48 printCharacter(root.getChild(i), 3, ""); 49 } 50 } 51 52 private static void printCharacter(Node n, int digit, String str) { 53 String alpha = "abcdefghijklmnopqrstuvwxyz"; 54 char c = alpha.charAt(n.getValue() - 1); 55 56 if(digit == 1) { 57 System.out.println(str + c); 58 return; 59 } 60 61 for(int i = index1; i <= index2; i++) { 62 printCharacter(n.getChild(i), digit - 1, str + c); 63 } 64 } 65} 66

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2021/05/20 09:53

こちらの質問が複数のユーザーから「過去の低評価」という指摘を受けました。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Java

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

再帰

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