zoukankan      html  css  js  c++  java
  • 课程作业01

    1.1使用组合数公式利用n!来计算

    设计思想:借助n!来计算n! k! (n-k)!进而求出C(n,k)

    程序流程图:

    源程序代码:

    package zuheshu;
    import java.util.Scanner;
    public class zuheshu {
    	public static void diyige() {
    		zuheshu j=new zuheshu();
    		int b;
    		long d;
    		Scanner in=new Scanner(System.in);
    		System.out.print("请输入N的值:");
    		int n=in.nextInt();
    		System.out.print("请输入K的值(K<N):");
    		int k=in.nextInt();
    		b=n-k;
    		long i=j.f(n);
    		long a=j.f(k);
    		long c=j.f(b);
    		d=i/a/c;
    		System.out.print("C("+n+","+k+")"+"="+d);
    			}
    	public long f(int n) {
    				if(n==1) 
    				{
    					return 1;
    				}
    				return n*f(n-1);
    	}
    	
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
             diyige();
    
    
    	}
    }
    

    结果截图:

    1.2使用递推的方法用杨辉三角形计算

    设计思想:利用杨辉三角的坐标得出C(n,k)的值

    程序流程图:

    程序源代码:

    import java.util.Scanner;
    public class dierge {
    	public static int yanghui(int n,int m) {
    	    int[][]  arr= new int[n+1][n+1];
    	    for(int i=0;i<n+1;i++)
    	    {
    	    	for(int j=i+1;j<n+1;j++)
    	    	{
    	    		arr[i][j]=0;
    	    	}
    	    	for(int j=0;j<i;j++)
    	    	{
    	    		if(j==0)
    	    		{
    	    			arr[i][j]=1;
    	    		}
    	    		else
    	    		{
    	    			arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
    	    		}
    	    	}
    	    }
    	    return arr[n][m];
    	}
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner in=new Scanner(System.in);
    		System.out.printf("请输入N的值:");
    		int n=in.nextInt();
    		System.out.printf("请输入K的值:");
    		int k=in.nextInt();
    		System.out.println(yanghui(n+1,k));
    	}
    
    }
    

      结果截图:

    1.3使用递归的方法用组合数递推公式计算

    设计思想:利用对组合数公式进行递归来求出最后的值

    程序流程图:

    程序源代码:

    import java.util.Scanner;
    public class disange {
    public static int jiecheng(int m,int n) 
    {
    	if(m<0||n<0||m<n)
    		return 0;
    	if(m==n)
    		return 1;
    	if(n==1)
    		return m;
    	return jiecheng(m-1,n)+jiecheng(m-1,n-1);
    }
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    System.out.printf("输入N的值:");
    Scanner in1=new Scanner(System.in);
    Scanner in2=new Scanner(System.in);
    int m=in1.nextInt();
    System.out.printf("输入k的值:");
    int n=in2.nextInt();
    in1.close();
    in2.close();
    System.out.println("C("+m+","+n+")="+jiecheng(m,n));
    	}
    
    }
    

      结果截图:

    2递归编程解决汉诺塔问题。

    设计思想:利用中间塔与目标塔的轮换交替来使盘子移动到目标塔 对以上步骤进行递归解决这个问题

    程序流程图:

    程序源代码:

    package hannuota;
    import java.util.Scanner;
    public class hannuota {
    	int i=1;
    	public static void move(int n,char qishi,char mubiao) 
    	{
    		
    		
    		System.out.println("将"+qishi+"号盘子"+"---->"+mubiao+"号盘子");  
    	}  
    	public static void hanoi(int n,char qishi,char jieyong,char mubiao)
    	{  
    		 
    	    if (n==1)  
    	    move(1,qishi,mubiao);
    	    else  
    	    {  
    	      hanoi(n-1,qishi,mubiao,jieyong);
    	      move(n,qishi,mubiao);              
    	      hanoi(n-1,jieyong,qishi,mubiao);
    	    }  
    	}  
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		System.out.printf("请输入盘子的个数");   
    	     Scanner in=new Scanner(System.in);
    	     int n=in.nextInt(); 
    	     char x='A',y='B',z='C';  
    	     System.out.println("盘子移动情况如下:");  
    	     hanoi(n,x,y,z);  
    	}
    
    }
    

      结果截图:

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

    设计思想:对输入的字符串进行前后元素的对比 若相同则ture不然为false

    程序流程图:

    程序源代码;

    package huiwen;
    import java.util.Scanner;
    public class huiwen {
    public static boolean isHuiWen(String text) 
    {
    	int length = text.length();
        for (int i = 0; i < length / 2; i++) 
     {
        if (text.toCharArray()[i] != text.toCharArray()[length - i - 1]) 
     {
    		    return false;
    	}
     }
    		    return true;
    	}
    public static void main(String[] args) {
    	// TODO Auto-generated method stub
    	Scanner in=new Scanner(System.in);
    	String text = in.next();
    	System.out.println(isHuiWen(text));	
    	}
    
    }
    

    结果截图:

  • 相关阅读:
    设计模式之一(策略模式)
    电脑开机进入不了XP界面
    IBM X系列笔记本通过U盘安装系统方法全攻略
    DELPHI 访问其它电脑文件(局域网)
    笔记本维修小插曲 屏幕不亮处理方式
    delphi 笔记
    电脑小子的新婚夜
    如何得到动态链接库的输出函数(delphi tdump.exe)
    sql server重复数据处理
    如何使用jQuery向asp.net Mvc传递复杂json数据Filter篇
  • 原文地址:https://www.cnblogs.com/zhpdqs/p/7660919.html
Copyright © 2011-2022 走看看