首页 > 其他分享 >递归

递归

时间:2022-09-27 17:14:25浏览次数:37  
标签:Scanner 递归 System println public out

递归

概念

  • A方法调用B方法,我们很容易理解!

  • 递归就是: A方法调用A方法!就是自己调用自己

  • 利用递归可以用简单的程序来解决一些复杂的问题。 它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。

递归结构包括两个部分:

  • 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。

  • 递归体:什么时候需要调用自身方法。

代码演示

package com.tea.method;

import java.util.Scanner;
//递归思想:仅适用于小计算,大计算不建议使用,电脑容易崩溃。
public class Demo06 {
   public static void main(String[] args) {
       System.out.println("请输入内容:");
       Scanner scanner = new Scanner(System.in);
       int y = scanner.nextInt();
       System.out.println(y+"的阶乘结果为:"+f(y));
  }
   public static int f(int x){
       if (x==1){
           return 1;
      }else {
           return x*f(x-1);
      }
  }
}

作业:写一个计算器

好像和递归关系不大,但是,将就看吧,轻喷。

package com.tea.method;

import java.util.Scanner;

public class CalcuDemo {
   public static void main(String[] args) {
       test();
  }
   public static void test(){
       System.out.println("请输入x:");
       Scanner scanner1 = new Scanner(System.in);
       int x = scanner1.nextInt();
       System.out.println("请输入计算模式:");
       Scanner scanner3 = new Scanner(System.in);
       char way = scanner3.next().charAt(0);
       System.out.println("请输入y:");
       Scanner scanner2 = new Scanner(System.in);
       int y = scanner2.nextInt();

       if(way=='+') {
           System.out.println("所以" + x + "+" + y + "=" + (x + y));
      }else if(way=='-'){
           System.out.println(x + "-" + y + "=" + (x - y));
      }else if(way=='*'){
           System.out.println(x + "*" + y + "=" + (x * y));
      }else if(way=='/'){
           System.out.println(x + "/" + y + "=" + (x / y));
      }else {
           System.out.println("不会吧不会吧不会有人还要输错吧?");
      }
  }
}
 

标签:Scanner,递归,System,println,public,out
From: https://www.cnblogs.com/bobocha/p/16735196.html

相关文章

  • 递归
    1、递归的应用场景递归是一种编程思想。1.在我们日常开发中,如果要遍历一个文件夹下面所有的文件,通常会使用递归来实现;2.很多算法都离不开递归,例如:快速排......
  • C++实现递归法求1!+2!+3!+…+n!的和
    1#define_CRT_SECURE_NO_WARNINGS2#include<iostream>34usingnamespacestd;5//用递归求某一项的阶乘的值6intfun(inti)//求第i项的值7{8......
  • 斐波那契数列(递归、记忆化搜索、递归)
    题目:菲波那契数列是指这样的数列:数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数k,要求菲波那契数列中第k个数是多少。输入输入一行,......
  • 学习记录8方法的重载、可变参数、递归
    方法的重载重载就是在一个类中,又想同的函数名称,但形参不同的函数即,一个类中有两个同名的方法,但这两个类的“返回值类型”、“形参类型”、“形参个数”不同,而在程序中......
  • 尾递归与非尾递归(线性递归)
    1尾递归与非尾递归区别非尾递归(线性递归):当数量很大时,会造成栈溢出。因为每次递归调用时,递归函数中的参数,局部变量等都要保存在栈中。尾递归:return时只调用自身,不能有额......
  • C语言递归汉诺塔
    #include<stdio.h>intmain(){voidhanoi(intn,charone,chartwo,charthree);intm;printf("Inputthenumberofdiskes:");scanf("%d",&m);......
  • 函数递归
    CREATEDEFINER=`root`@`%`FUNCTION`queryParentAreaInfo`(areaIdINT)RETURNSvarchar(4000)CHARSETutf8mb4BEGINDECLAREsTempVARCHAR(4000);DECLAREsTempChd......
  • Vue组件递归渲染
    父级菜单  数据格式  子组件递归(直接使用name) ......
  • 递归、迷宫问题
    简介递归需遵守的规则应用实例代码实现publicclassMiGong{ publicstaticvoidmain(String[]args){ //先创建一个二维数组,模拟迷宫 //地图......
  • 二叉树遍历(递归、迭代)
    前中后序遍历递归法//前序遍历varpreorderTraversal=function(root){letres=[];constdfs=function(root){  if(root===null)return;  //先序遍历所......