分析:n!=1*2*...*n,题目描述要加到5的阶层,所以得用循环,并且需要循环五次。
首先,依靠题目要求定义一个递归方法:
public static int Recur(int n) {//定义一个返回int数据类型的递归函数 if(n==1){ return 1;//当n等于1时,返回1 }else { return n*Recur(n-1);//从n开始往下乘 } }
整体的一个代码就是:
public class Recursion { public static void main(String[] args) { int sum = 0; for(int i=1;i<=5;i++){//经行五次循环 sum+=Recur(i);//调用Recur方法实现递归 } System.out.println(sum); } public static int Recur(int n) {//定义一个返回int数据类型的递归函数 if(n==1){ return 1; }else { return n*Recur(n-1); } } }
然后呢,做了个升级处理:从键盘输入一个数,然后从1开始,加到这个数的阶乘,并且需要多组输入输出。
import java.util.Scanner; public class Recursion { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (true){ int n = scanner.nextInt(); int sum = 0; for(int i=1;i<=n;i++){//经行五次循环 sum+=Recur(i);//调用Recur方法实现递归 } System.out.println(sum); } } public static int Recur(int n) {//定义一个返回int数据类型的递归函数 if(n==1){ return 1; }else { return n*Recur(n-1); } } }