zoukankan      html  css  js  c++  java
  • 20175314 《Java程序设计》迭代和JDB

    20175314 《Java程序设计》迭代和JDB

    要求

    1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能
    2 m,n 要通过命令行传入
    3 提交测试运行截图(至少三张:正常如c(3,2)、异常如c(2, 3)、边界情况如c(m,m))
    4 提交正常情况下用JDB调试程序c(X,2)的截图,X为学号最后一位+3,至少四张截图
    5 把代码推送到码云

    代码

    因为之前没有注意到第二项要求,第一次写代码用到的是Scanner:

    import java.util.Scanner;
    public class iteration {
      public static void main(String args[]) {
          int c,n,m;
          	System.out.println("输入正整数(回车确定)");
            Scanner reader=new Scanner(System.in);
          n = reader.nextInt();
          m = reader.nextInt();
          c = Result(n, m);
          if (c == -1) System.out.println("输入错误:m应小于等于n!");
          else if (c == -2) System.out.println("输入错误:m或n不能小于零!");
          else System.out.println(c);
      }
    public static int Result(int n, int m) {
          if (m == 1) return n;
          else if (m == 0 || m == n) return 1;
          else if (n < m && n>0 && m>0) return -1;
          else if (n < 0 || m < 0) return -2;
          else
              return Result(n - 1, m - 1) + Result(n - 1, m);
      }
    }
    

    后来及时学习在命令行传入参数,修改了代码:

    public class Iteration {
      public static void main(String args[]) {
          int c,n,m;
          n = Integer.parseInt(args[0]);
          m = Integer.parseInt(args[1]);
          c = Result(n, m);
          if (c == -1) System.out.println("输入错误:m应小于等于n!");
          else if (c == -2)System.out.println("输入错误:m或n不能小于零!");
          else System.out.println(c);
      }
    
      public static int Result(int n, int m) {
          if (m == 1) return n;
          else if (m == 0 || m == n) return 1;
          else if (n < m && n>0 && m>0) return -1;
          else if (n < 0 || m < 0) return -2;
          else
              return Result(n - 1, m - 1) + Result(n - 1, m);
      }
    }
    

    截图

    • 正常情况

    • 异常情况

    • 边界情况

    • 正常情况(学号测试)

    问题

    最早使用的是Scanner语句进行参数输入,后来请教了同学学习使用命令行输入,在终端java的时候一起输入参数,输入方式感觉极为奇怪,暂时没有发现这样输入的优势。

  • 相关阅读:
    GitCam一款Gif动画制作软件
    IniParse解析类
    一个网页设计师应该考虑的9件事
    Backit轻松为您的网站创建备份
    [翻译]Web开发牛人访谈:你们都在用什么?
    简单文件服务器
    一个网站访问速度测试工具
    GS运维常用工具及文档
    Oracle快速收集AWR的方案
    Oracle调整内存参后报ORA-00844和ORA-00851
  • 原文地址:https://www.cnblogs.com/SANFENs/p/10632899.html
Copyright © 2011-2022 走看看