现在的位置: 首页 > 综合 > 正文

2009.12.16笔记

2014年02月14日 ⁄ 综合 ⁄ 共 3621字 ⁄ 字号 评论关闭

System.out.println(i)是输出一个i就换行,而System.out.print(i)输出一个I接着下一个不换行

所要知道的算法:递归,迭代等;

递归有3个必备条件:
1.递归式
2.递归的出口条件
3.界限函数必须使得程序向出口递归.

Ctr+c可以用在dos上停止死循环。

数组:
一维数组的声明方式:type  var[] 或 type[]  var;
          例如:int a[];
            int[] a1;
            double  b[];
            Mydate []c;
数组下表跟字符串一样,也是从0开始,最大下标值为数组长度减1。.
数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化。
动态分类数组需要new, 静态分配数组不需要new。

class DiGui
{

/*

求指定的数的阶乘
*/

 public int method(int n)
 {
    if(n==1)  //表示1的阶乘还是1
    {
    return 1;
    }
    else  //如果传入的参数不是1,就让它变成1;
    {
    return n*method(n-1);
    }

  }

  public static void main(String args[])
  {
   int n=5;
   DiGui d=new DiGui();
   System.out.println(n+"的阶乘是"+d.method(5));

  }
}

/*
求1到99的连加
*/
public class Test2
 {
 public int lianJia(int i)
 {
   if(i==1)
   {
    return 1;
    }
    else
    {
    return i+lianJia(i-1);
    }
 }
  public static void main(String args[])
  {
 Test2 d = new Test2();
 System.out.println(d.lianJia(99));

  }
}

/*
家里有8个孩子,老大比老二大两岁,老二比老三大两岁,老三比老四大两岁。。。以此类推,老八6岁,问老大多大?
*/

public int qiu(int n)
{
 if(n==8)
 {
  return 6;
 }
 else
 {
 return 2+qiu(n+1);//return 写成rerern,死人了!!!!!!!!!
 }
 
}

 public static void main(String args[])
 {
  int b=1;
  DiGui d=new DiGui();
  System.out.println(d.qiu(b));
 }
}

/*
求Fibonacci数列: 1, 1, 2, 3, 5, 8, …第40个数的值。
*/

class DiGuiEx4
{
  public int Ex4(int n)
  {
    if(n==1)
   {
    return 1;
    }
    if(n==2)
    {
    return 1;
    }
    else
    {
    return Ex4(n-1)+Ex4(n-2);
    }
   }
 
  public static void main(String args[])
 {
  DiGuiEx4 d = new DiGuiEx4();
  System.out.println(d.Ex4(40));
 }
}

class ShuZhu
{
  public static void main(String wanghui[])
  {
    String[] s = new String[5];//动态创建数组,数组定义与为数组元素分配空间并赋值的操作分开进行
    int ss[] = {6, 5, 4, 3, 2, 1};//静态创建数组,在定义数组的同时就为数组元素分配空间并赋值
    s[0] = "王惠";
    s[1] = "王鹏";
    s[2] = "王成国";
    s[3] = "王丽君";
    s[4] = "王文";

     for(int i = 0; i<s.length; i++)
    {
       System.out.println(s[i]);
     }

      for(int i = 0; i<ss.length; i++)
    {
       System.out.println(ss[i]);
     }
   }
}

/*
新型for循环
*/
class Test1
{
 public static void main(String args[])
/*
{
int[] sz = {1,2,3,4,5};
for(int i:sz)
{System.out.println(i);}
}
*/

/*
求1到99的连加,For循环
*/
int sum=0;//因为是局部变量,要使用必须赋予初值
for(int i=1; i<=99; i+=2)
{
 {
  sum+=i;
 }

 System.out.println("1+3+5+...+99的值是"+sum);

}
}

/*
求1到99的连加,递归做法
*/
public class Test2
 {
 public int lianJia(int i)
 {
   if(i==1)
   {
    return 1;
    }
    else
    {
    return i+lianJia(i-1);
    }
 }
  public static void main(String args[])
  {
 Test2 d = new Test2();
 System.out.println(d.lianJia(99));

  }
}

public class Test
{
   public static void main(String argv[])
  {
   int a[]= new int[5];
   System.out.println(a[3]);//输出为0,数组的每个元素也被按照成员变量同样的方式被隐式初始化。
  }
}

/*

母兔子第三个月生一个小兔,生完第一个后每个月生一个小兔子。小兔子第三个月生一个小小兔子,小兔子生完 第一个后每个月生一个。
求第八个月农场有多少兔子。提示:找规律,数字跟数字之间的规律。
第一个月  第二个月  第三个月  第四个月  第五个月  第六个月  第七个月  第八个月
   1          1        2        3         5         8         13        21

*/
public class TuZi
{
  public int sheng(int n)
  {
  if(n==1)
   {
   return 1;
   }
   if(n==2)
   {
   return 1;
   }
   else
  {
  return sheng(n-1)+sheng(n-2);//
  }
}

  public static void main(String args[])
  {

 
  TuZi d = new TuZi();
  int month = 8;
 
  System.out.println("第"month"个月农场共有"+d.sheng(month)+"只兔子");

  }
}

/*
一直猴子每天吃树上的一半桃子,再扔一个,每天如此,第十天剩下一个桃子,问这棵树上一共有多少桃子。
1     2     3     4     5     6            7                      8                    9          10
                                     2*(2*(2i+2)+2+1)      2*(2*(i+1)+1)          2*(i+1)     i=1
                                     2*(2*(2i+2)+2)+2         2*(2i+2)+2            2i+2
                                                   
                                                                      3i                  2i          i
                                

*/

class TestTaoZi
{
  public int taozi(int n)
  {
     if(n==10)
     {
      return 1;
     }
    //return 1+2*taozi(n+1);//这是先扔后吃的算法
    return 2*taozi(n+1)+2;//这是先吃后仍的算法,taozi(n+1)当成是后一天的桃子数
  }
   public static void main(String args[])
    {
       TestTaoZi d = new TestTaoZi();
        int i = 1;
       System.out.println(d.taozi(i));
    }
}

抱歉!评论已关闭.