递归练习:
1.求1-n的和。
public class DiGui {
public static void main(String[] args) {
int sum=sum(100);
System.out.println(sum);
}
public static int sum(int n){
if (n==1){
return 1;
}
return n+sum(n-1);
}
2.求1-n的阶乘
public class DiGui {
public static void main(String[] args) {
int a=cheng(5);
System.out.println(a);
}
public static int cheng(int n){
if(n==1){
return 1;
}
return n*cheng(n-1);
}
3.打印输出某一文件目录下的所有文件夹及目录
package zlb.day08.demo02;
import java.io.File;
public class DiGui {
public static void main(String[] args) {
File file=new File("Z:\\zlb");
print(file);
}
public static int cheng(int n){
if(n==1){
return 1;
}
return n*cheng(n-1);
}
public static void print(File dir){
//创建一个数组,存储目录下的所有文件夹和文件
File[] files = dir.listFiles();
System.out.println(dir);
//遍历
for (File s : files) {
//如果是文件夹再递归
if (s.isDirectory())
{
print(s);
}
//输出文件
else {
System.out.println(s);
}
}
}
4.打印输出某一目录下的所有.java文件
package zlb.day08.demo02;
import java.io.File;
import java.io.FileFilter;
public class DiGui {
public static void main(String[] args) {
File file=new File("Z:\\zlb");
print1(file);
}
public static void print1(File dir){
File[] files = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isDirectory()||pathname.toString().endsWith(".java");
}
});
for (File s : files) {
if (s.isDirectory())
{
print1(s);
}
else
{
System.out.println(s);
}
}
}
}
}