-1

私は区分方程式プログラムであるこのプログラムを実行しましたが、何か間違ったことをしたかどうか、または何かを見逃したかどうかを知りたいだけです。答えは出てきていますが、コーディングを見逃していないことを確認したかっただけです。

class RecursiveMethods
{
    RecursiveMethods()          //default constructor
    {
    }

    public int fOf(int x)
    {
        if (x <= 10)                        //the base case
        {
            System.out.println(x + " <= 10, therefore ... f(" + x + ") = -5");
            return -5;
        }
        else
        {
            System.out.println(x + " > 10, therefore ... f(" + x + ") = f(" + x + " - 3) + 2 = f(" + (x -3) + ") + 2");
            return fOf(x-3) + 2;
        }
    }    
}

public class RecursionMethodTester
{
    public static void main(String[] args)
    {
        int x;
        RecursiveMethods rMethods = new RecursiveMethods();

        System.out.println("---------------------------------");
        System.out.println("       f(x - 3) + 2    if x >  10");
        System.out.println("f(x) = ");
        System.out.println("       -5              if x <= 10");
        System.out.println("---------------------------------");
        System.out.println();

        x = 20;
        System.out.println("Example 1:  x = " + x);
        System.out.println("f(" + x + ") = " + rMethods.fOf(x));
        System.out.println();

        x = 19;
        System.out.println("Example 2:  x = " + x);
        System.out.println("f(" + x + ") = " + rMethods.fOf(x));
        System.out.println();

        x = 18;
        System.out.println("Example 3:  x = " + x);
        System.out.println("f(" + x + ") = " + rMethods.fOf(x));
        System.out.println();  
    }
}

ご支援いただきありがとうございます。

4

1 に答える 1

1

大丈夫そうです...追加のクレジットのために、ここにいくつかの他のポインタがあります:

  • RecursiveMethodsをインスタンス化する必要はありません。fOfメソッドは静的とマークすることができ、インスタンスをインスタンス化して呼び出す代わりに、「RecursiveMethods.fOf()」を呼び出すことができます。
  • System.out.printlnを使用する代わりに、PrintWriterを見てください。フォーマット文字列にデータを挿入できるformat()メソッドがあります。
  • RecursiveMethodsは、再利用可能であることを意図しているように見えます...その場合、両方のクラスでSystem.outに書き込まないでください。拡張と再利用がより困難になります。

私はあなたにA-を与えるでしょう。

于 2013-02-05T19:51:27.380 に答える