java - 使用方法中声明的相同方法?

标签 java methods return-value

所以一直在为我过去的考试学习,遇到这个问题,如果 num = 7,返回值是多少?将它插入 BlueJ 会告诉我 16,func1 做了什么使它变成 16?如何在方法内再次使用声明的方法?我进行了搜索,但很难找到这个确切的示例,因为它都是通过正常使用方法得出的。

谢谢,

public int func1(int num) 
{
  if ( num <= 2 ) return 1;
  return func1(num – 2) + num;
}

最佳答案

这是对您正在使用它的同一函数的递归调用。

因此,func1(num – 2) 将调用相同的函数 - public int func1(int num)num = num - 2,直到 num >= 2

所以,你的递归是这样的:-

func(n)
   calls func(n-2)
      calls func(n-4)
         .. so on
         calls func(1)
            returns 1
         returns 1 + 3 + ... + (n - 4)
      returns 1 + 3 + ... + (n - 4) + (n - 2) 
   returns 1 + 3 + ... + (n - 4) + (n - 2) + n

更新:- 概括了上述递归,让您弄清楚它是如何工作的。

您可以通过:- Recursion - Wiki Page

关于java - 使用方法中声明的相同方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13119118/

相关文章:

java - 合法地将开源库包含在程序中

java - 从其他类 Android Java 调用静态方法

function - Bourne shell 函数返回变量始终为空

c# - 是否有进行冗长 boolean 值评估的原因?

java - 通过两种单独的方法获取数据

c - 如何构造故障点多的代码?

java - 组件类型可以映射到 hibernate 中的实体类型吗?

java - Android 多模块项目因 TypeNotPresentException 而失败

java游戏如何构造定时效果/定距效果?

javascript - CoffeeScript 中的嵌套方法