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

# 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 scikit安装之后import不了
• ¥15 Ros2编译一个使用opencv的c++节点的时候，报了这个错误，请问怎么解决啊
• ¥15 人脸识别相关算法 YOLO，AI等
• ¥15 spark问题方便加V17675797079
• ¥15 Python代码不打印的原因
• ¥20 微软SEAL库的安装和使用，VS2022环境配置问题
• ¥15 数学问题也不知道那种类型的问题
• ¥15 R作图的时候，文本框重叠了怎么办？
• ¥15 用python重建流场
• ¥15 stm32 调试舵机pwm输出异常