• 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的时候一起输入参数,输入方式感觉极为奇怪,暂时没有发现这样输入的优势。

  • 相关阅读:
    Unsafe(转载) 规格严格
    MySQL 中文 规格严格
    2007“奥普迪杯”开放式实时在线辞典系统设计大赛
    2007“奥普迪杯”开放式实时在线辞典系统设计大赛
    2007年个人回忆与总结
    蔡学镛:2008编程语言走势解盘
    用scanf实现gets的功能
    2007年个人回忆与总结
    用scanf实现gets的功能
    初学入门:如何有效编写软件的75条建议
  • 原文地址:https://www.cnblogs.com/SANFENs/p/10632899.html
Copyright © 2020-2023  润新知