Bokstan 2022-09-29 18:23 采纳率: 33.3%
浏览 121
已结题

java多项式求解,杨辉三角

img


java基础练习,要求代码,凑字数,满足以上要求,凑字数,再来凑字数,继续凑字数

急需

  • 写回答

3条回答 默认 最新

  • 进自欢 2022-09-30 09:15
    关注
    获得3.00元问题酬金
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            int a=sc.nextInt();
            int b=sc.nextInt();
            int n=sc.nextInt();
            Yanghui yanghui=new Yanghui(a,b,n);
            int[] arr1=new int[n+1];
            int[] arr2= yanghui.getarrN();
            for(int i=0;i<=n;i++){
                arr1[i]=com(n,i);
            }
            boolean issame=true;
            for(int i=0;i<=n;i++){
                if(arr1[i]!=arr2[i]){
                    issame=false;
                }
            }
            yanghui.printarr();
            String str= Arrays.toString(arr1);
            System.out.println("二项式展开:       "+str);
            str=Arrays.toString(arr2);
            System.out.println("杨辉三角第"+n+"行系数:"+str);
            if(issame){
                System.out.println("杨辉三角第"+n+"行系数与二项式展开相同");
            }
            else {
                System.out.println("杨辉三角第"+n+"行系数与二项式展开不同");
            }
            System.out.println("输入 x  n");
            int x=sc.nextInt();
            n=sc.nextInt();
            System.out.println("x^n = "+yanghui.pow(x,n));
        }
        static int com(int n,int m){    //计算二项式系数
            int ret=1;
            for(int i=0;i<m;i++){
                ret*=n;
                n--;
            }
            for(int i=m;i>1;i--){
                ret/=i;
            }
            return ret;
        }
    }
    
    class Yanghui{
        private int a,b,n;
        private int[][] arr;
        public int getA() {
            return a;
        }
    
        public void setA(int a) {
            this.a = a;
        }
    
        public int getB() {
            return b;
        }
    
        public void setB(int b) {
            this.b = b;
        }
    
        public int getN() {
            return n;
        }
    
        public void setN(int n) {
            this.n = n;
        }
    
        public int[][] getArr() {
            return arr;
        }
    
        public void setArr(int[][] arr) {
            this.arr = arr;
        }
        public int pow(int x,int n){    //计算x^n
            if(n==0){
                return 1;
            }
            else if(n%2==0){
                return pow(x*x,n/2);
            }
            else{
                return pow(x*x,n/2)*x;
            }
        }
        public Yanghui(int a, int b, int n) {
            this.a = a;
            this.b = b;
            this.n = n;
            arr=new int[n+1][n+1];
            for(int i=0;i<n;i++){
                arr[i][0]=1;
            }
            for(int i=1;i<n;i++){
                for(int j=1;j<=i;j++){
                    arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
                }
            }
        }
        public int[] getarrN(){     //返回第n行系数
            int[] ret=new int[n+1];
            ret[0]=1;
            for(int i=1;i<=n;i++){
                ret[i]=arr[n-1][i-1]+arr[n-1][i];
            }
            return ret;
        }
        public void printarr(){     //打印前n行
            for(int i=0;i<n;i++){
                for(int j=0;j<=i;j++){
                    System.out.print(arr[i][j]+" ");
                }
                System.out.println();
            }
        }
    }
    
    评论

报告相同问题?

问题事件

  • 系统已结题 10月7日
  • 修改了问题 9月29日
  • 创建了问题 9月29日

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流