如何将a和b与我的递归方法相乘?

时间:2018-05-16 08:23:52

标签: java

我无法将我的方法与a和b相乘;我收到了错误:

此行有多个标记      - 一个无法解决的问题      变量      - b无法解析为      变量

{% elsif collection.tags contains tag %}

3 个答案:

答案 0 :(得分:0)

public class Main {

public static void main(String[] args) {
    Terminal.printLine("Please enter n , a and b ");
    int n = Integer.parseInt(args[0]);
    int a = Integer.parseInt(args[1]);
    int b = Integer.parseInt(args[2]);
    for (int i = 1; i <= n; i++)
        Terminal.printLine(i + "," + recursiv(n,a,b));

}

public static long recursiv(int n, int a, int b) {

    if (n >= 0 && n <= 2)
        return 1;

    else
        return a*recursiv(n - 2) + b*recursiv(n - 3);

}

}

答案 1 :(得分:0)

制作a和b全局变量,

像这样

 public class Main {

static int a = 0;
static int b = 0;

public static void main(String[] args) {
    Terminal.printLine("Please enter n , a and b ");
    int n = Integer.parseInt(args[0]);
    a = Integer.parseInt(args[1]);
    b = Integer.parseInt(args[2]);
    for (int i = 1; i <= n; i++)
        Terminal.printLine(i + "," + recursiv(n));

}

public static long recursiv(int n) {

    if (n >= 0 && n <= 2)
        return 1;

    else
        return a*recursiv(n - 2) + b*recursiv(n - 3);

}

}

现在你应该可以在课堂的任何地方调用它们,而不必将它们传递给方法。

希望这会有所帮助

答案 2 :(得分:0)

Formula&amp;规则

  

pi = 1(0≤i≤2)。

     

pi = a * p(i-2)+ b * p(i-3)i> 1。 2 ......其中:

     
      
  • a和b是序列的初始值设定项,∈Z。

  •   
  • i≤n且n∈N∪{0}。

  •   

<强>实施

public class Sequence {

    public static void main(String[] args) {

        try {
            System.out.println("Please enter n, a and b");
            int n = Integer.parseInt(args[0]);
            int a = Integer.parseInt(args[1]);
            int b = Integer.parseInt(args[2]);
            for(int i=1; i<=n; i++) {
                System.out.println("i= " + i + "\tpi= " + result(a,b,i));
            }
        }catch(NumberFormatException e) {
            System.out.println("Invalid Input!");
        }
    }

    static long result(int a, int b, int n) {
        if(n >= 0 && n <= 2) return 1;

        return a * result(a , b, n-2) + b * result(a, b, n-3);
    }
}

<强> TEST

<强>输入

n = 25, a = 5, b = 10.

<强>输出

i= 1    pi= 1
i= 2    pi= 1
i= 3    pi= 15
i= 4    pi= 15
i= 5    pi= 85
i= 6    pi= 225
i= 7    pi= 575
i= 8    pi= 1975
i= 9    pi= 5125
i= 10   pi= 15625
i= 11   pi= 45375
i= 12   pi= 129375
i= 13   pi= 383125
i= 14   pi= 1100625
i= 15   pi= 3209375
i= 16   pi= 9334375
i= 17   pi= 27053125
i= 18   pi= 78765625
i= 19   pi= 228609375
i= 20   pi= 664359375
i= 21   pi= 1930703125
i= 22   pi= 5607890625
i= 23   pi= 16297109375
i= 24   pi= 47346484375
i= 25   pi= 137564453125