分段方程式

时间:2013-02-05 19:43:44

标签: java

我做了这个程序,这是一个分段方程式程序,我只是想知道我做错了什么或者我错过了什么。答案是正确的,但只是想确保我没有错过任何编码。

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();  
    }
}

感谢您的支持。

1 个答案:

答案 0 :(得分:1)

看起来没问题...为了额外的功劳,这里有一些其他的指示:

  • 不需要实例化RecursiveMethods。 fOf方法可以标记为静态,而不是实例化和调用实例,你可以调用“RecursiveMethods.fOf()”。
  • 查看PrintWriter而不是使用System.out.println。它有format()方法,可以将数据插入格式字符串。
  • RecursiveMethods看起来似乎是可重用的...在这种情况下,不要在两个类中写入System.out,这将使扩展和重用更加困难。

我会给你一个A - 。