如何在Java中完善Fibonacci系列式递归方法

时间:2019-04-01 01:41:59

标签: java recursion methods

明天我的Comp Sci 2类的大型Java程序到期。 在一个主要的Java程序中,存在多个问题。

  1. 开发一个递归方法f1来计算结果1 + 2 + 4 + 8 + 16 + 32 +…+ 4096,并在调用f1(4096)时返回这样的和。无需在方法内部打印。

2。开发一个递归方法f2以计算结果1 / i + 2 /(i-1)+ 3 /(i-2)+…+(i-1)/ 2 + i / 1并返回一个值。无需在方法内部打印。

3。1999年,世界人口达到60亿,并以每年1.4%的速度增长。编写一个递归函数f3以返回/确定总人口将超过100亿的时间。

  1. 开发一个递归函数f4以返回序列String 调用f4(i)时为“ 1 2 3 4 5…i”。

  2. 与数字4相同,但相反。当调用F5(i)时,返回序列字符串“ 5 4 3 2 1 ...”。

  3. 开发一个递归函数f6以返回序列String 当调用f6(1,i)时为“ 1 2 3 4 5…i(i-1)(i-2)…5 4 3 2 1”。

我已经尝试为每个语句找出正确的if语句,并试图为每个语句找出正确的return语句和最终结果。

public class RecursiveMethod{

    public static void main(String[] args){
    F1(4096);
    F2(1);
    F3(6,000,000,000);
    F4(i);
    F5(i);
    F6(1,i);
    }

  public static int F1(int n)
  {
     if (n==0){
        return 1;
     }else{
        return n+n*2;
     }
  }

     public static int F2(int i)
     {
        if(i==0){
           return 0;
        }else{
           return F2(i++) + F2(i--);
        }
     }

        public static int F3(int pop, int rate)
        {
           if(pop<=6,000,000,000){
              return F3;
           }else{
              int Population = pop + (pop * rate / 100);
                 return F3(10,000,000,000);
           }
         }

           public static String F4(String i)
           {
              if(Integer.parseInt(i) <= 1){
                 return "1";
              }else{
                 return i + " " + F4(Integer.parseInt(i)+1);
              }
           }

              public static String F5(String i)
              {
                 if (Integer.parseInt(i) <= 1){
                    return "1";
                 }else{
                    return i + " " + F5(Integer.parseInt(i)-1);
                 }
              }

                 public static String F6(String i)
                 {
                    if (Integer.parseInt(i) <= 1){
                       return "1";
                    }else{
                       return i + " " +  F6(Integer.parseInt(i)+1) + F6(Integer.parseInt(i)-1);
                    }
                 }
}            

每个编号的问题中都有预期的结果,尽管每个问题都不允许我在其中使用“ System.out.print”。

0 个答案:

没有答案