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

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

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

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

再帰

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

Q&A

0回答

846閲覧

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

km1023

総合スコア23

Java

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

再帰

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

0グッド

1クリップ

投稿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

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問