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);
	}
}


Java修炼——递归算法的俩个实例的更多相关文章
- Java反射机制可以动态修改实例中final修饰的成员变量吗?
		问题:Java反射机制可以动态修改实例中final修饰的成员变量吗? 回答是分两种情况的. 1. 当final修饰的成员变量在定义的时候就初始化了值,那么java反射机制就已经不能动态修改它的值了. ... 
- Java学习-014-文本文件写入实例源代码(两种写入方式)
		此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 第一种:文本文件写入,若文件存在则删除原文件,并重新创建文件.源代码如下所示: /** * @fun ... 
- Java学习-013-文本文件读取实例源代码(两种数据返回格式)
		此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 1.读取的文本文件内容以一维数组[LinkedList<String>]的形式返回,源代 ... 
- Java学习-008-判断文件类型实例
		此文源码主要为应用 Java 如何判断文件类型的源码及其测试源码.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:2015-2-2 23:02:00,请知悉. Java 判断文件类型源码如 ... 
- Java I/O解读与使用实例
		林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲解了Java I/O解读与使用实例. 一.I/O基本概念 I/O全称是Inpu ... 
- [原]Java修炼 之 基础篇(二)Java语言构成
		上次的博文中Java修炼 之 基础篇(一)Java语言特性我们介绍了一下Java语言的几个特性,今天我们介绍一下Java语言的构成. 所谓的Java构成,主要是指Java运行环境的组成, ... 
- Java Class类以及获取Class实例的三种方式
		T - 由此 Class 对象建模的类的类型.例如,String.class 的类型是Class<String>.如果将被建模的类未知,则使用Class<?>. publi ... 
- java并发之固定对象与实例
		java并发之固定对象与实例 Immutable Objects An object is considered immutable if its state cannot change after ... 
- 我JAVA修炼之路
		今天起,我会不定期更新我的java修炼之路, 2017.7.10,星期一 我参见了河南青云的培训班,这一天是我们的开班典礼. 我会不定期的总结我的学习笔记,大家喜欢的可以看看,不喜勿喷. 写代码: 1 ... 
随机推荐
- Python类属性与实例属性理解
			按理讲,类属性改变,类的实例对象这个属性也应该被改变,但是在python中实际却不是这样 class test(): name = 111 a = test() b = test() a.name = ... 
- Abp vNext 自定义 Ef Core 仓储引发异常
			问题 在使用自定义 Ef Core 仓储和 ABP vNext 注入的默认仓储时,通过两个 Repository 进行 Join 操作,提示 Cannot use multiple DbContext ... 
- 极光推送(JPush)开篇
			Date:2019-11-11 读前思考: 极光推送是什么? 极光推送是能做什么?有什么优势? 怎么根据业务需求来实现极光推送服务呢? 简介 极光推送(JPush)是独立的第三方云推送平台,致力于为全 ... 
- Jenkins集群下的pipeline实战
			关于Jenkins集群 在<快速搭建Jenkins集群>一文中,我们借助docker快速搭建了Jenkins集群,今天就在这个集群环境中创建pipeline任务,体验Jenkins集群下的 ... 
- 在开发框架中扩展微软企业库,支持使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库
			在前面随笔<在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容3 ... 
- linux与Windows进程控制
			进程管理控制 这里实现的是一个自定义timer用于统计子进程运行的时间.使用方式主要是 timer [-t seconds] command arguments 例如要统计ls的运行时间可以直接输入t ... 
- Android、IOS的Fiddler证书安装教程
			通过手机连接fiddler实现代理访问,其中必须得安装证书才能生效,那么针对不同的手机连接方式也不一样,分为两类:Android.iOS: Android-Fiddler证书安装: 直接在任意浏览器中 ... 
- Java Import的使用
			这里根据上一篇中ClassObject.java的例子改编的:https://www.cnblogs.com/jizizh/p/11938574.html 一.创建ClassObjectImport. ... 
- DDD实战与进阶 - 值对象
			目录 DDD实战与进阶 - 值对象 概述 何为值对象 怎么运用值对象 来看一个例子 值对象的持久化 总结 DDD实战与进阶 - 值对象 概述 作为领域驱动设计战术模式中最为核心的一个部分-值对象.一直 ... 
- 【论文阅读】A practical algorithm for distributed clustering and outlier detection
			文章提出了一种分布式聚类的算法,这是第一个有理论保障的考虑离群点的分布式聚类算法(文章里自己说的).与之前的算法对比有以下四个优点: 1.耗时短O(max{k,logn}*n), 2.传递信息规模小: ... 
