-3

このように親と子という名前の2つの配列があります

Child [] = {1,5,6,7}

Parent [] = {2,1,5,8}

親要素を入力すると、子要素が与えられます。同じように、子の子要素を与える必要があります。

例えば:

  1. 入力として2を指定した場合。出力は1,5,6になります

  2. 入力として 1 を指定した場合。出力は 5,6 になります

  3. 入力として5を指定した場合。出力は6になります

  4. 入力として8を指定した場合。出力は7になります

私は連続ループを与えてみました。

//final code
package parentchild;

import java.util.Scanner;

public class ParentChild {
    static int [] child = {1,5,6,7};
    static int [] parent = {2,1,5,8};

    public static void main(String[] args)
    {
        System.out.println("enter:");
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();

        int len = parent.length-1;

        while(x!= parent[len])
        {
          for(int i=0;i<=3;i++)
          {
              if(x==parent[i])
              {
                 System.out.println(child[i]);
              }

              x = child[i];
          }   
          return;
    }

       while(x== parent[len])
       {
           System.out.println(child[len]);
           return;
       }





    }
}
4

1 に答える 1

0

あなたのアルゴリズムは機能しているようですが、少し複雑で反復回数が多いため、ここで解決したのは改善されたコードです。

public static void main(String[] args) {
        System.out.println("enter:");
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();

        while (true) {
            boolean found = false;
            for (int i = 0; i <= 3; i++) {
                if (x == parent[i]) {
                                    x = child[i];
                    System.out.println(child[i]);
                                    //indicate that found  a parent 
                    found = true;
                    break;
                }
            }
            // stop the program, if no parent was found
            if (!found) {
                return;
            }
        }
    }
于 2013-04-06T08:52:56.120 に答える