1.一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子? 通过递归和循环来解决这个问题
提示:
我们不妨拿新出生的一对小兔子分析一下:
第一个月小兔子没有繁殖能力,所以还是一对;
两个月后,生下一对小兔民数共有两对;
三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对;
package recursion;
public class Fibonaccisequence {
/**
* 斐波那契数列
* @param n
* @return
*/
public static int fibonacci(int n)
{
if(n==0||n==1)
return 1;
return fibonacci(n-1)+fibonacci(n-2);
}
public static void main(String[] args) {
System.out.println(fibonacci(3));
}
}
2.使用File,获得一个文件是否存在,如果不存在,则创建.如果存在,则显示这个文件的大小,路径,最后修改时间.
package ioStream;
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class class02 {
public static void main(String[] args) {
File file=new File("D:\\新建文件夹 (2)\\3.txt");
if(!file.exists())
{
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
else
{
System.out.println("该文件的大小为:"+file.length());
System.out.println("该文件的的路径为:"+file.getAbsolutePath());
System.out.println("该文件的最后修改时间为:"+new Date(file.lastModified()));
}
}
}
3.创建一个多层目录 "f:/java/java1/java2"
package ioStream;
import java.io.File;
public class class03 {
public static void main(String[] args) {
File file=new File("d://java//java1//java2");
System.out.println(file.mkdirs());
}
}
4.File类,自学createTempFile方法的使用,在一个目录中,创建500个临时文件;
package ioStream;
import java.io.File;
import java.io.IOException;
public class class04 {
public static void main(String[] args) {
File file =new File ("D:\\新建文件夹 (2)\\liyifeng");
for(int i=0;i<500;i++)
{
try {
file.createTempFile("aaa", ".txt", file);
} catch (IOException e) {
System.out.println("文件创建失败!!!");
}
}
}
}
//二分法查找 [1,3,4,5,7,8,9,23,45]
package recursion;
public class binarysearch {
// public static int search(int[] a,int low,int high,int m){
//
// if(low>high){
// return -1;
// }
//
// int mid=(low+high)/2;
//
// if(m==a[mid]){
// return mid;
// }
// else if(m<a[mid]){
// return search(a,low,mid-1,m);
// }
// else{
// return search(a,mid+1,high,m);
// }
// }
public static int binnary(int[] a,int start,int end,int values)
{
if(start>end)
{
return -1;
}
int mid=(start+end)/2;
if(values<a[mid])
{
return binnary(a, start, mid-1, values);
}else if(a[mid]<values)
{
return binnary(a, mid+1, end, values);
}else
{
return mid;
}
}
public static void main(String[] args) {
int [] a= {1,3,6,8,9,20,33};
System.out.println(binnary(a,0,a.length-1,8));
}
}
//汉诺塔;
package ioStream;
public class TowerOfHanoi {
public static void hanoi(int n,String A,String B,String C)
{
if(n==1)
{
System.out.println("move"+n+": "+A+"-->"+C);
}else
{
hanoi(n-1,A,C,B);//首先将上面的(n-1)个盘子从A杆借助C杆移至B杆
System.out.println("move"+n+": "+A+"-->"+C);//然后将编号为n的盘子从A杆移至C杆
hanoi(n-1,B,A,C