• 课后作业,接乘的计算


    1、程序设计思想

    设置方法1,2,3。输入n和k的值,分别计算结果。

    方法一:计算n!的值并且代入公式计算。

    方法二:输出(n+1)*(n+1)的杨辉三角,第n+1行的第k+1个数字即为所求。

    方法三:判断k是否为1,是返回n,不是的话判断n-k的值,是的话返回n的值,不是的话计算danyuan=digui(a-1,b-1).add(digui(a-1,b));

    2、程序流程图

    3、程序源代码

    package java作业;

    import java.math.BigInteger;
    import java.util.Scanner;

    public class jiecheng
    {
    static Scanner sc=new Scanner(System.in);
    public static void main(String args[])
    {
    int a,b;
    int[][] er;
    BigInteger san;
    System.out.print("请输入n:");
    a=sc.nextInt();
    System.out.print("请输入k:");
    b=sc.nextInt();
    //方法一
    System.out.print("方法一:");
    zuhe(a,b);
    //方法三
    System.out.print("方法三:");
    san=digui(a,b);
    System.out.println(san);
    //方法二
    System.out.println("方法二:");
    er=ditui(a+1);
    for(int heng=0;heng<a+1;heng++)
    for(int shu=0;shu<a+1;shu++)
    {
    if(heng>shu)
    System.out.print(er[heng][shu]+" ");
    if(heng==shu)
    System.out.println(er[heng][shu]);
    }
    }
    static int[][] ditui(int a)
    {
    int[][] yanghui=new int[a][a];
    for(int ha=0;ha<a;ha++)
    {
    yanghui[ha][0]=1;
    yanghui[ha][ha]=1;
    }
    for(int heng=2;heng<a;heng++)
    for(int shu=1;shu<a;shu++)
    {
    if(heng>shu)
    yanghui[heng][shu]=yanghui[heng-1][shu-1]+yanghui[heng-1][shu];
    }
    return yanghui;
    }
    static BigInteger digui(int a, int b)
    {

    BigInteger danyuan;
    BigInteger n,k;
    danyuan=BigInteger.valueOf(a);
    n=BigInteger.valueOf(a);
    k=BigInteger.valueOf(b);
    if(b!=1)
    {
    while(a-b==1)
    {
    return danyuan;
    }
    danyuan=digui(a-1,b-1).add(digui(a-1,b));
    }
    else
    danyuan=n;
    return danyuan;
    }
    static void zuhe(int a,int b)
    {
    int haha;
    BigInteger n,k;
    BigInteger danwei;
    danwei=BigInteger.valueOf(1);
    n=BigInteger.valueOf(a);
    k=BigInteger.valueOf(b);
    BigInteger fenmu;
    fenmu=BigInteger.valueOf(1);
    BigInteger zhongzhuan;
    zhongzhuan=BigInteger.valueOf(1);
    haha=zhongzhuan.compareTo(n);
    //计算分母
    while(haha==-1||haha==0)
    {
    fenmu=fenmu.multiply(zhongzhuan);
    zhongzhuan=zhongzhuan.add(danwei);
    haha=zhongzhuan.compareTo(n);
    }
    //计算分子第一部分
    BigInteger fenzi;
    fenzi=BigInteger.valueOf(1);
    BigInteger first;
    first=BigInteger.valueOf(1);
    zhongzhuan=BigInteger.valueOf(1);
    haha=zhongzhuan.compareTo(k);
    while(haha==-1||haha==0)
    {
    first=first.multiply(zhongzhuan);
    zhongzhuan=zhongzhuan.add(danwei);
    haha=zhongzhuan.compareTo(k);
    }
    //计算分子第二部分
    BigInteger mid;
    mid=n.subtract(k);;
    BigInteger second;
    second=BigInteger.valueOf(1);
    zhongzhuan=BigInteger.valueOf(1);
    haha=zhongzhuan.compareTo(mid);
    while(haha==-1||haha==0)
    {
    second=second.multiply(zhongzhuan);
    zhongzhuan=zhongzhuan.add(danwei);
    haha=zhongzhuan.compareTo(mid);
    }
    fenzi=first.multiply(second);
    System.out.println(fenmu.divide(fenzi));
    }
    }

    4、截图

  • 相关阅读:
    从零开始学Oracle—约束(三)
    ewebeditor安全解决方案 j神
    12款很棒的浏览器兼容性测试工具推荐 j神
    文件无法删除,找不到指定文件-解决办法 j神
    如何应对Global.asa木马 j神
    2012年最佳免费网站和移动应用 PSD 界面素材揭晓 j神
    PHP上传RAR压缩包并解压目录 j神
    数据库查询语句:left join ... on ... j神
    js 与或运算符 || && 妙用 j神
    实时监听输入框值变化的完美方案:oninput & onpropertychange j神
  • 原文地址:https://www.cnblogs.com/CHAHA123/p/7664288.html
Copyright © 2020-2023  润新知