标签:函数实现 char 回文字符串 二维数组 color system.in 程序流程图 bool 汉诺塔
作业1.1:
设计思想:
先计算n!,k!,(n-k!),然偶计算cnk组合数
程序流程图

代码
package 递推;
import java.util.Scanner;
public class 一点一 {
	public static void main(String[] arges)
			{
				double n2=1,k2=1,nk,nk2=1,R;
				System.out.println("计算组合数,输入k,n");		
				Scanner in=new Scanner(System.in);
				int K=in.nextInt();
				Scanner in2=new Scanner(System.in);
				int N=in2.nextInt();
				in.close();
				in2.close();
				nk=N-K;
				for(;nk>=1;nk--)
				{
					nk2=nk2*nk;
				}
				for(;N>=1;N--)
				{
					n2=N*n2;
				}
				for(;K>=1;K--)
				{
					k2=K*k2;
				}
				R=n2/(k2*nk2);
				System.out.print("组合数是:"+R);		
			}
}
结果

作业1.2
设计思想
用二维数组和组合数的递推公式计算组合数
流程图

代码
import java.util.Scanner;
public class 一点二 {
	public static void main(String[] arges)
	{
		double[][] C=new double[10][10];
		System.out.println("计算组合数,输入k,n");		
		Scanner in=new Scanner(System.in);
		int K=in.nextInt();
		Scanner in2=new Scanner(System.in);
		int N=in2.nextInt();
		in.close();
		in2.close();
		C[1][0] = C[1][1] = 1;  
		for (int i = 2; i <=N; i++)
		{  
			C[i][0] = 1;  
			for (int j = 1; j <= K; j++)  
            {
				C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]);  
            } 
		} 
		System.out.print("组合数是:"+C[N][K]);		
	}
}
结果

作业1.3
设计思想
递归函数实现逐层计算c(nk)
流程图

源代码
package 递归;
import java.util.Scanner;
public class ggf {
	  public static void main(String args[])
	    {
	       Scanner input=new Scanner(System.in);
	       int n,k;
	       System.out.println("请输入组合数公式的n和k:");
	       n=input.nextInt();
	       k=input.nextInt();
	       input.close();
	        System.out.println("组合结果为"+jieguo(n,k));
	    }
	    public static long jieguo(int a,int b) 
	    {
	       if(b==0)return 1;
	       else 
	       {
	           if(a==1)return 1;
	           else 
	           {
	        	   if(a==b)return 1;
	               else {
	            	   return (jieguo(a-1,b-1)+jieguo(a-1,b));
	               			}
	            }
	        }
	    }
}
结果

作业2
实验思想
若移动第n个圆盘,则要先移动第n-1个圆盘,则要先移动第n-2个圆盘......
流程图

代码
package 汉诺塔;
import java.util.Scanner;
public class hfd {
	  public static void main(String args[])
	    {
	       int n;
	       char A=‘A‘;
	       char B=‘B‘;
	       char C=‘C‘;
	       Scanner input=new Scanner(System.in);
	       System.out.println("请输入n:");
	       n=input.nextInt();
	       input.close();
	       jiben( n,A,B,C);
	    }
	    public static void jiben(int n,char A,char B,char C)
	    {
	       if(n==1)
	       {
	           yidong(A,1,C);
	       }
	       else
	       {
	           jiben(n-1,A,C,B);
	           yidong(A,n,C);
	           jiben(n-1,B,A,C);
	       }
	    }
	    public static void yidong(char A,int n,char B)
	    {
	        System.out.println("第"+n+"个圆盘从"+A+"->"+B);
	    }
}
结果

作业3
思想
第一个和最后一个比较,如果相同,在第二个和倒数第二个比较......
程序流程图

代码
package 回文数;
import java.util.Scanner;
public class huiwenshu {
    public static void main(String args[])
    {
       System.out.print("输入字符串:");
       Scanner input=new Scanner(System.in);
       String s=input.next();
       input.close();
       int i,j;
       i=0;
       j=s.length()-1;
       System.out.println("是否是回文字符串:"+HW(s,i,j));
    }
    public static boolean HW(String s,int i,int j)
    {
       if(i==j)
       {
           return true;
       }
       else
           if((i-1)==j)
           {
              return true;
           }
       return (s.charAt(i)==s.charAt(j))&&HW(s,i+1,j-1);
    }
}
结果

标签:函数实现 char 回文字符串 二维数组 color system.in 程序流程图 bool 汉诺塔
原文地址:http://www.cnblogs.com/lqs244/p/7663605.html