标签:ext public illegal png main 公式 组合数 如何 stat
信1605-3 于丁一 20163578
使用组合数公式利用n!来计算
设计思想:首先要判断一个数的阶乘如何表达,然后调用方法用组合数公式,最后求出组合数。
package n的阶乘;
public class number {
	public static void main(String[] args){
		int a=4;
		int b=5;
		System.out.println("C("+a+","+b+")="+gNum(a,b));
	}
    public static int gNum(int m,int n){
    	if(m==0||m==n)
    		return 1;
    	else return f(n)/(f(m)*f(n-m));
    }
    public static int f(int z){
    	if(z==1)
    		return 1;
    	else return z*f(z-1);
    }
}


使用递推的方法用杨辉三角形计算
设计思想:首先需要构建一个杨辉三角,最后的结果就是杨辉三角形中的一个数,最后输出对应的数就可以
package 使用递推的方法用杨辉三角形计算;
	import java.util.Scanner;
	import java.math.BigInteger;
	public class Number {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner scanner=new Scanner(System.in);
System.out.println("输入两个数并用空格隔开");
int n=scanner.nextInt();
int k=scanner.nextInt();
BigInteger[][] a=new BigInteger[n][n];
 for(int i=0;i<n;i++) {
  for(int j=0;j<n;j++) {
 if((i==0)&&(j==0))
	 a[i][j]=BigInteger.valueOf(1);
	 else if(j==0||j==i)
 a[i][j]=BigInteger.valueOf(1);
	 else if(j<=i) 
	a[i][j]=a[i-1][j-1].add(a[i-1][j]);
	else
		a[i][j]=BigInteger.valueOf(0);
	 }
	 }
	 System.out.println("n!/(k!*(n-k)!)="+a[n-1][k-1]);
	}
使用递归的方法用组合数递推公式计算
设计思想:首先定义组合数中的两个数,调用方法,并且在方法中在调用自己,完成递归,最后输出正确的结果。
package 使用递归的方法用组合数递推公式计算;
public class Number {
		public static void main(String[] args){
			int a=4;
			int b=5;
			System.out.println("C("+a+","+b+")="+gNum(a,b));
		}
	    public static int gNum(int m,int n){
	    	if(m==0||m==n)
	    		return 1;
	    	else return gNum(m-1,n-1)+gNum(m,n-1);
	    }
	}

递归编程解决汉诺塔问题。用Java实现
设计思想:利用递归,先留一个圆盘,把n-1个圆盘先移动,把最后一个圆盘移到c上,以这样的方法移动。
public class Number {
		   
		 public static void main(String[] args) { 
		  int disk = 5; 
		  move(disk, ‘A‘, ‘B‘, ‘C‘); 
		 } 
		 private static void move(int topN, char from, char inter, char to) { 
		  if (topN == 1) { 
		   System.out.println("Disk 1 from " + from + " to " + to); 
		  } else { 
		   move(topN - 1, from, to, inter); 
		   System.out.println("Disk " + topN + " from " + from + " to " + to); 
		   move(topN - 1, inter, from, to); 
		  } 
		
		    
		} 
		
}

使用递归方式判断某个字串是否是回文( palindrome )
设计思想:比较首尾的字符,要是相同在继续比较第二个字符,按照这样的方法一直比较,知道相同,输出结果。
package 回文;
import java.util.Scanner;
public class Number {
	public static void main(String[] args){ 
        Scanner in=new Scanner(System.in);
        String s = in.nextLine();
        int i = 0;
        int j = s.length() - 1; 
        System.out.println(s + " 是回文数么? " + Number .gNum(s, i, j)); 
    }  
public static boolean gNum(String s,int i,int j){ 
	        if(i > j) 
	            throw new IllegalArgumentException(); 
	        if(i == j) 
	            return true; 
	        else{ 
	            return (s.charAt(i) == s.charAt(j)) && gNum(s,i+1,j-1); 
	        } 
	    } 
	       
}    
 

将课程作业01、02、03的设计思想、源程序代码和结果截图整理成一篇博文。。
标签:ext public illegal png main 公式 组合数 如何 stat
原文地址:http://www.cnblogs.com/ydy1/p/7659238.html