Bokstan 2022-09-29 18:23 采纳率: 33.3%

# java多项式求解，杨辉三角

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 关于#wireshark#的问题：并且能够给数据做标注，如这个流量是在看视频或者是在转账
• ¥90 请问，这个视频播放软件的名称，用过的朋友请给答案，上方..avi是啥意思？是看短剧还是播放本地视频？
• ¥15 运筹优化，gurobi,python
• ¥15 基于python的电影系统推荐
• ¥20 springmvc重定向和返回json
• ¥15 数学建模——参会安排怎么做
• ¥15 电脑键盘实现触摸功能
• ¥25 matlab无法将表达式转换为双数组怎么解决?
• ¥15 单片机汇编语言相关程序
• ¥20 家用射频美容仪技术规格