Java修炼——递归算法的俩个实例

1.是输出指定文件目录下的所以子目录以及文件
2.使用递归算算法:1!+2!+3!+4!+5!+…+n!(计算阶乘累加)

package com.bjsxt.recurison;

import java.io.File;
import java.util.Scanner;

public class TestRecurison {
	
	public static void printFile(File file,int level) {
		//打印树状结构
		for (int i = 0; i < level; i++) {
			System.out.print("-");
		}
		//输出目录或者是文件
		System.out.println(file.getName());
		if (file.isDirectory()) {
			File [] listFiles =file.listFiles();
			for (File temp : listFiles) {
				printFile(temp, level+1);
			}
		}
	}
	
	//n!的递归算法
	static long TR(int n) {
		if (n==1) {
			return 1;
		}else {
			return n*TR(n-1);
		}				
	}
	public static void main(String[] args) {
		
		File f=new File("F:\\****\\项目");
		printFile(f, 0);
		
		
		long sum=0;
		Scanner input=new Scanner(System.in);
		System.out.println("请输入一个大于0的整数:");
		int nextInt = input.nextInt();		
		//将每次的阶乘累加起来赋值给sum
		for (int n= 1; n <=nextInt; n++) {
			sum=sum+TR(n);
		}
		System.out.println(nextInt+"的累加阶乘是:\n"+sum);
	}
}

在这里插入图片描述
在这里插入图片描述

posted @ 2019-12-11 08:57  sakura-yxf  阅读(145)  评论(0)    收藏  举报