zoukankan      html  css  js  c++  java
  • 将课程作业01、02、03的设计思想、程序流程图、源程序代码和结果截图整理成一篇博文

    使用计算机计算组合数:

    (1)使用组合数公式利用n!来计算

    流程图:

    代码:

    import java.util.Scanner;
    public class Ynaghui3
    {

    public static void main(String args[])
    {
    Scanner aa=new Scanner(System.in);
    int m,n;
    System.out.println("请输入m、n:");
    m=aa.nextInt();
    n=aa.nextInt();
    int c=jisuan(m)/(jisuan(n)*jisuan(m-n));
    System.out.println("C("+m+","+n+")的值为:"+c);
    }
    public static int jisuan(int i)
    {
    if(i==1)
    return 1;
    else
    return i*jisuan(i-1);
    }

    }

    结果:

    (2)使用递推的方法用杨辉三角形计算

    设计思想:先输入两个参数值,然后递归调用方法求值,最后输出结果

    流程图:

    代码:

    import java.util.Scanner;
    public class Yanghui
    {

    public static void main(String args[])
    {
    Scanner aa=new Scanner(System.in);
    int m,n;
    System.out.println("请输入m、n:");
    m=aa.nextInt();
    n=aa.nextInt();
    System.out.println("C("+m+","+n+")的值为:"+jisuan(m+1,n+1));
    }
    public static int jisuan(int i,int j)
    {
    if(j==1||j>=i)
    return 1;
    else
    return jisuan(i-1,j)+jisuan(i-1,j-1);

    }

    结果:

    2,汉诺塔问题

    设计思想:利用递归,把n-1个圆盘先移动b,把最后一个圆盘移到c上,以这样的方法移动,然后以这n-1个盘重新开始,知道所有盘都移到c上

    流程图:

    代码:

    import java.util.Scanner;


    public class Hanoi {

    public static void main(String[] args)
    {
    Hanoi a =new Hanoi();
    System.out.println("输入盘子数量:");
    Scanner input = new Scanner(System.in);
    int n =input.nextInt();
    a.hanoi(n, 'A', 'B', 'C');
    }
    void hanoi(int n,char one,char two,char three)
    {

    if(n==1)
    move(one,three);

    else
    {
    hanoi(n-1,one,three, two);
    move(one,three);
    hanoi(n-1,two,one, three);
    }
    }
    void move(char x,char y)
    {
    System.out.println(x+"移到"+y);
    }
    }

    结果:

    3.回文字符串问题

    设计思想:

    输出字符串,判断首尾字符是否相等,不相等输出不回文,相等则递归调用函数,判断再里面的字符是否相等,知道遍历整个字符串;

    流程图:

    代码:

    import java.util.*;
    public class Palindrome {

    String str;


    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO 自动生成的方法存根
    System.out.println("请输入字符串:");
    Scanner input = new Scanner(System.in);
    Palindrome aa=new Palindrome();
    int d=0,c;
    aa.str = input.next();
    c=aa.str.length()-1;
    aa.huiwen(d,c);

    }
    public int huiwen(int d,int c)
    {
    if(d==str.length())
    {
    System.out.println(d+"回文"+str.length()+"回文");
    System.out.println(str+"回文");
    System.exit(0);
    }
    if(str.charAt(c)!=str.charAt(d))
    {
    System.out.println(str+"不回文");
    return 0;
    }
    if(str.charAt(c)==str.charAt(d))
    {
    return huiwen(d++,c--);
    }

    return 0;

    }

    }

    结果:

  • 相关阅读:
    python版本升级及pip部署方法
    Redis集群管理(二)
    UP UP UP!(dp)
    One Way Roads(搜索)
    Back to Underworld(搜索)
    队列链表实现以及有序表的合并
    第八届郑州轻工业学院ACM(程序设计大赛)校内预选赛
    Modulo Sum(背包 + STL)
    Co-prime Array&&Seating On Bus(两道水题)
    Hard Process(二分)
  • 原文地址:https://www.cnblogs.com/wj1998/p/7663918.html
Copyright © 2011-2022 走看看