首页 > 其他分享 >9.20

9.20

时间:2023-09-20 23:47:18浏览次数:26  
标签:9.20 Scanner 递归 int System factorial public

学习递归

递归是一种在函数中调用自身的方法,每次递归调用之后,问题的规模越来越接近这个限制条件,直到满足限制条件才停止递归

求n的阶乘可以用循环和递归

import java.util.Scanner;
public class Main {
    public static int factorial(int x){
        if(x==1){
            return 1;
        }
        return x * factorial(x-1);
    }
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.print("输入n的值");
        int n = s.nextInt();
        System.out.println(n + "的阶乘为:" + factorial(n));
    }
}

可惜是效率低下,函数调用的时候,每次调用时要做地址保存,参数传递等。如果递归调用N次,就要分配N次局部变量,N次形参,N次调用函数地址,N次返回值,势必效率低下。

标签:9.20,Scanner,递归,int,System,factorial,public
From: https://www.cnblogs.com/lllyclh/p/17718836.html

相关文章

  • 9.20随笔
    1.想到为什么要考研,算是找到了一个比较充分理由,是想的比较清楚的,因为觉得高考并不是我的顶点,还没有走到自己的巅峰,什么时候才能达到一生的顶峰呢?考上研究生吗,感觉是,因为家里还没有出过研究生,所以就更想开创先例了。2.觉得老师们都很强啊,都是985的博,比我们算是高了几个层次,有时候......
  • 9.20
    学习了vue的指令,做了个网页<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"cont......
  • 9.20随笔
    C数组允许定义可存储相同类型数据项的变量,结构是C编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。结构体中的数据成员可以是基本数据类型(如int、float、char等),也可以是其他结构体类型、指针类型等。结构用于表示一条记录,假设您想要跟踪图书馆中书......
  • 9.20
    今天上了英语科,继续课本的学习。练习了链表classMyLinkedList{public:MyLinkedList(){this->size=0;this->head=newListNode(0);}intget(intindex){if(index<0||index>=size){return-1;......
  • 大二快乐日记9.20(关于音乐审美的一些自我理解)
    我报了每周三晚上的音乐鉴赏。一开始以为是超星网课,后来发现是线下课,也好顺便涨涨我的审美。老师讲得不错,讲得很广,各种音乐类型都涉及到了。大多数是一些民族歌曲,中国的,欧洲的都有。我还记得每次建民老师给我们上课之前都会放一些歌曲,这些歌曲一听就有点他们那个时代的感觉。这些......
  • 9.20号练习
    本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:ListMerge(ListL1,ListL2);其中List结构定义如下:typedefstructNode*PtrToNode;structNode{ElementTypeData;/*存储结点数据*/PtrToNodeNext;/*指向下一......
  • 9.20java学习
    1packagestaticDemo1;23publicclassTest1{4publicstaticvoidmain(String[]args){5int[]arr1={1,2,3,4,5};6System.out.println(Arrunit.printArr(arr1));7double[]arr2={1.1,2.2,3.3,4.4};8System.out......
  • 9.20打卡带哨兵的双向环形链表
      importjava.util.ArrayList;//双向环形链表哨兵既是头也是尾哨兵的prev指向最后一个元素,最后一个元素的next指向哨兵publicclassMain{publicstaticvoidmain(String[]args){DoubleLinkedListd=newDoubleLinkedList();d.addFirst(3);......
  • 2023.9.20——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午上课,下午做任务。我了解到的知识点:1.了解了关于模型训练的一些知识和注意事项;2.了解了关于软件构造的一些知识,明日计划:1.上课;2.比赛;......
  • 9.20闲话
    今天破事一样的多。上午模拟赛终于正常了......