ZZULIOJ-1113: 递归调用的次数统计(函数专题)(Java)

简介: ZZULIOJ-1113: 递归调用的次数统计(函数专题)(Java)

题目描述:


如下程序的功能是计算 Fibonacci数列的第n项。函数fib()是一个递归函数。请你改写该程序,计算第n项的同时,统计调用了多少次函数fib(包括main()对fib()的调用)。

#include<stdio.h>

int fib(int k);


int main(void )

{

   int n;

   scanf("%d", &n);

   printf("%d\n", fib(n));  

   return 0;

}


int fib(int k)

{

   if(k == 1 || k == 2)

       return 1;

   else

       return fib(k-1) + fib(k-2);

}  


输入:


输入一个正整数n。


输出:


输出包含两行,第一行是一个整数,表示第n项的值;第二行输出递归调用了多少次,具体格式见输出样例。


样例输入:


20


样例输出:


6765

递归调用了13529次


程序代码:


import java.util.*;
public class Main
{
  static int ans=0;//定义全局变量
  public static void main(String[] args)
  {
    Scanner input=new Scanner(System.in);
    int n=input.nextInt();
    System.out.println(Main.fib(n));
    System.out.printf("递归调用了%d次",ans);
    input.close();
  }
  public static int fib(int k)
  {
    ans++;
    if(k==1||k==2)
      return 1;
    else
      return Main.fib(k-1)+Main.fib(k-2);
  }
}
相关文章
|
2月前
|
Java
让星星⭐月亮告诉你,jdk1.8 Java函数式编程示例:Lambda函数/方法引用/4种内建函数式接口(功能性-/消费型/供给型/断言型)
本示例展示了Java中函数式接口的使用,包括自定义和内置的函数式接口。通过方法引用,实现对字符串操作如转换大写、数值转换等,并演示了Function、Consumer、Supplier及Predicate四种主要内置函数式接口的应用。
28 1
|
3月前
|
Java
java基础(11)函数重载以及函数递归求和
Java支持函数重载,即在同一个类中可以声明多个同名方法,只要它们的参数类型和个数不同。函数重载与修饰符、返回值无关,但与参数的类型、个数、顺序有关。此外,文中还展示了如何使用递归方法`sum`来计算两个数之间的和,递归的终止条件是当第一个参数大于第二个参数时。
33 1
java基础(11)函数重载以及函数递归求和
|
2月前
|
Java 编译器 C语言
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
26 3
|
4月前
|
Java 调度 Android开发
Android经典实战之Kotlin的delay函数和Java中的Thread.sleep有什么不同?
本文介绍了 Kotlin 中的 `delay` 函数与 Java 中 `Thread.sleep` 方法的区别。两者均可暂停代码执行,但 `delay` 适用于协程,非阻塞且高效;`Thread.sleep` 则阻塞当前线程。理解这些差异有助于提高程序效率与可读性。
85 1
|
4月前
|
存储 运维 Java
函数计算产品使用问题之怎么配置定时触发器来调用Java函数
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
开发框架 Java Android开发
JNI中调用Java函数
JNI中调用Java函数
29 0
|
4月前
|
开发框架 Java Android开发
JNI中调用Java函数
JNI中调用Java函数
34 0
|
SQL 存储 分布式计算
【Java新特性学习 四】JDK8: 库函数新特性之Optional,Streams,Date/Time API(JSR 310),Base64,并行数组
【Java新特性学习 四】JDK8: 库函数新特性之Optional,Streams,Date/Time API(JSR 310),Base64,并行数组
81 0
|
存储 小程序 Java
Java基础——函数与数组
今天让我们进一步学习一下java中的函数与数组吧。
129 0
Java基础——函数与数组
|
存储 小程序 Java
java4---函数与数组
发现不断进行加法运算,为了提高代码的复用性,就把该功能独立封装成一段独立的小程序,当下次需要执行加法运算的时候,就可以直接调用这个段小程序即可,那么这种封装形形式的具体表现形式则称作函数。 练习:把两个整数相加:
315 0
java4---函数与数组