方法

方法前不加static

static表示的静态。

如果此函数是静态的,会在程序初始化过程中直接进行内存加载,此方法内的所有方法内容必须是静态的,否则会报错静态方法引用动态变量。方法调用:“类名.方法”

如果此函数是动态的,那么只有在调用的时候才会被主动加载一次,之后释放内存。方法调用:必须先实例化出来一个类,之后再通过实例化类名+方法的形式调用。

public class StaticTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int n=2;
        int result;
        result=new NoStatic().square(n);
        System.out.println(result);
    }

    
}
class NoStatic
{
    public int square (int n)
    {
        return n*n;
    }
}

结果截图

编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数。

 

import java.util.*;
public class PureRandom {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Scanner in=new Scanner(System.in);
        int n;
        System.out.println("输入要生成的随机数个数");
        n=in.nextInt();
        //纯随机数生成
        int seed=1;
        int c=0;
        seed=(7^5*seed+c)%(2^31-1);
        for(int i=0;i<n;i++)
            {
            seed=(7^5*seed+c)%(2^100);
            System.out.println(seed);
            }
    }

}

程序截图:

 

 

square方法重载,因为它满足以下三个重载条件

1.必须是同一个类 2.方法名(也可以叫函数)一样 3.参数类型不一样或参数数量不一样

 

杨辉三角形与组合数公式

组合数公式

import java.util.*;
public class Combination {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        //组合数公式
         Scanner in = new Scanner(System.in);
         int n,k;
         int flag=1;//判断输入数据是否正确
         System.out.println("输入元素个数");
         n=in.nextInt();
         System.out.println("输入要取出的元素个数");
         k=in.nextInt();
         if(k>n) 
             {
             flag=0;
             System.out.println("error");
             }
         if(flag==1)
         System.out.println("组合数结果为"+factorial(n)/(factorial(k)*factorial(n-k)));
    }
    //阶乘函数
    public static int factorial(int n)
    {
        if(n<0) System.out.println("error");
        if(n==0||n==1) return 1;
        else return n*factorial(n-1);
    }
}

递推公式

import java.util.*;
public class Recurrence {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        //递推公式
            int n,k;
            int flag=1;//判断输入数据是否正确
            Scanner in = new Scanner(System.in);
             System.out.println("输入元素个数");
             n=in.nextInt();
             System.out.println("输入要取出的元素个数");
             k=in.nextInt();
             if(k>n) 
             {
             flag=0;
             System.out.println("error");
             }
             if(flag==1)
                 System.out.println("组合数结果为"+((factorial(n-1)/(factorial(k-1)*factorial(n-k)))+(factorial(n-1)/(factorial(k-1)*factorial(n-k-1)))));
    }

     //阶乘函数
        public static int factorial(int n)
        {
            if(n<0) System.out.println("error");
            if(n==0||n==1) return 1;
            else return n*factorial(n-1);
        }
}

杨辉三角

import java.util.*;
public class triangle {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //杨辉三角
        int n,k;
        int flag=1;//判断输入数据是否正确
        Scanner in = new Scanner(System.in);
         System.out.println("输入元素个数");
         n=in.nextInt();
         System.out.println("输入要取出的元素个数");
         k=in.nextInt();
         if(k>n) 
         {
         flag=0;
         System.out.println("error");
         }
         if(flag==1)
             System.out.println("组合数结果为"+( (factorial(n-1)/(factorial(k-1)*factorial(n-k-1))) + (factorial(n-1)/(factorial(k)*factorial(n-k))) ));
    }
    //阶乘函数
    public static int factorial(int n)
    {
        if(n<0) System.out.println("error");
        if(n==0||n==1) return 1;
        else return n*factorial(n-1);
    }
}

程序截图:

 

递归编程解决汉诺塔问题。用Java实现

 

public class Hanoi {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

          int startPeg = 1; //代表startPeg
          int endPeg = 3; //代表endPeg
          int tempPeg = 2; //代表temPeg
          int totalDisks = 3; //disk总数
          //盘子移动
          solveTowers( totalDisks, startPeg, endPeg, tempPeg );
        
    }
     public static void solveTowers( int disks, int sourcePeg, 
              int destinationPeg, int tempPeg )
           {
             
              if ( disks == 1 )
              {
                 System.out.printf( "\n%d --> %d", sourcePeg, destinationPeg );
                 return;
              } 

             //移动初始盘
              solveTowers( disks - 1, sourcePeg, tempPeg, destinationPeg );

             //初始盘到目标盘
              System.out.printf( "\n%d --> %d", sourcePeg, destinationPeg );

             //临时防治盘到目标盘
              solveTowers( disks - 1, tempPeg, destinationPeg, sourcePeg );
           } 
}

程序截图:

 

 

 

 使用递归方式判断某个字串是否是回文( palindrome )

import java.util.*;
public class palindrome {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Scanner in=new Scanner(System.in);
        String Str;
        System.out.println("随意输入一段字符");
        Str=in.next();
        if(PalidJudge(Str)==true)
            System.out.println("这段字符是回文");
        else System.out.println("这段字符不是回文");
    }
    

    //判断是否为回文数
    public static boolean PalidJudge(String S)
    {
        int l=S.length();
        if(l<=1) return true;//
        if(S.charAt(0)!=S.charAt(l-1)) return false;
        return PalidJudge(S.substring(1,l-1));
    }
}

程序截图:

 

posted @ 2016-10-16 11:01  Steerner  阅读(164)  评论(0编辑  收藏  举报