首页 > 试题广场 >

class program { &...

[单选题]
public class Test {

  public static int count = 0;

  public static void main(String[] args) {
    int i;
    i = x(8);
    System.out.println(count);
  }

  public static int x(int n) {
    count++;
    if (n <= 3)
      return 1;
    else
      return x(n - 2) + x(n - 4) + 1;
  }
}


该程序最后输出结果是多少?
  • 9
  • 12
  • 18
  • 8
以8为根节点画出分支树 8个分支表明调用8次 再加上自身调用x(8)一次 共9次
                                       8
                              6                4
                       4          2      2       0
                 2         0
发表于 2019-07-03 20:27:58 回复(2)
问题问的是x(8)调多少次x(n),而不是x(x(8)),所以答案应该是A
发表于 2019-06-18 16:45:55 回复(1)
emmm进入函数就调用了一次。。。。
发表于 2022-08-29 17:34:46 回复(0)
public class Program
{
    public static int count = 0;
    public static void Main(String[] args)
    {
        int i;
        i = FuncX(8, "main调用FuncX");
        Console.WriteLine($"调用次数:{count},结果:{i}");
    }

    public static int FuncX(int n, string tip)
    {
        count++;

        //Console.WriteLine($"当前n:{n},{tip}:{count}");

        if (n <= 3)
        {
            Console.WriteLine($"「{tip}」满足了:{n}\r\n");
            return 1; //==> 符合条件,不用再递过而返回1,而且执行下一个代码
        }

        Console.WriteLine($"「{tip}」不满足了:{n}");
      

        int temp_count = FuncX(n - 2, "执行n-2") + FuncX(n - 4, "执行n-4") + 1;
        //==> 注意了这个「temp_count」在该方法区域会累计的

        //=== FuncX(n-2) => FuncX(n-4) => FuncX(n-2) => FuncX(n-4)
        //=== FuncX(n-2)符合条件,则执行FuncX(n-4)
        //=== 注意:FuncX(n-4)包含FuncX(n-2)以及FuncX(n-4)



        Console.WriteLine($"{tip}.结果={temp_count}");
        return temp_count;
        
    }
}

发表于 2022-02-06 15:20:01 回复(0)
这题答案是A吧,不是问的x(8)么
发表于 2020-06-13 13:04:05 回复(0)

题目问的是x(8)调用了x(int)多少次,答案是按x(x(8))算的,emmmmm

发表于 2020-03-14 00:45:08 回复(0)
public static int count=0;
	    public static void main(String []args) {
	        int i;
	         i = x(x(8));
		   System.out.println(count);
	    }
		
	   
	     public static int x(int n)
	     {
	    	 count++;
	         if (n <= 3)
	             return 1;
	         else
	             return x(n - 2) + x(n - 4) + 1;         
	     } 答案是18,问的是调用了多少次x();
发表于 2019-10-30 11:09:41 回复(0)