java基础练习,要求代码,凑字数,满足以上要求,凑字数,再来凑字数,继续凑字数
急需
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();
}
}
}