package com.yuanyu.study; public class Demo06 { public static void main(String[] args) { Demo06 demo06=new Demo06(); System.out.println( demo06.f(5)); } public int f(int n) { if (n == 1) { return 1; } else { return n * f(n - 1); } } }
一开始没有考虑到n==1的情况,导致出现,因此使用递归时一定要首先考虑取值为1的情况
虽然递归使用起来很简便,但是如果程序深度很大的时候递归占用内存过大(递归的速度也不如迭代),调用过多会影响机器的性能
package com.yuanyu.study; import java.util.Scanner; public class Demo06 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入第1个运算数:"); double a1=scanner.nextDouble(); System.out.println("请输入一个运算符:"); String s=scanner.next(); System.out.println("请输入第2个运算数:"); double a2=scanner.nextDouble(); switch (s){ case "+": System.out.println(a1+"+"+a2+"="+(a1+a2));break; case "-": System.out.println(a1+"-"+a2+"="+(a1-a2));break; case "*": System.out.println(a1+"*"+a2+"="+(a1*a2));break; case "/": System.out.println(a1+"/"+a2+"="+(a1/a2));break; } scanner.close(); } }