zoukankan      html  css  js  c++  java
  • 课后作业,接乘的计算

    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、截图

  • 相关阅读:
    demo2.css
    less的嵌套
    ddd.css
    LESS自学
    vue.js过滤器 “|”
    v-if,v-else数据绑定
    v-for基本用法
    在spring中使用JdbcTemplate进行数据库管理操作
    2013第四届蓝桥杯JavaB组省赛 第一题:世纪末的星期
    PTA L1-049 天梯赛座位分配 (20分)
  • 原文地址:https://www.cnblogs.com/CHAHA123/p/7664288.html
Copyright © 2011-2022 走看看