運用java的陣列實現 多項式加法 java陣列 程式設計習題
阿新 • • 發佈:2019-01-06
//1多項式加法(5分) //題目內容: //一個多項式可以表達為x的各次冪與係數乘積的和,比如: // //現在,你的程式要讀入兩個多項式,然後輸出這兩個多項式的和,也就是把對應的冪上的係數相加然後輸出。 //程式要處理的冪最大為100。 // //輸入格式: //總共要輸入兩個多項式,每個多項式的輸入格式如下: //每行輸入兩個數字,第一個表示冪次,第二個表示該冪次的係數,所有的係數都是整數。第一行一定是最高冪,最後一行一定是0次冪。 //注意第一行和最後一行之間不一定按照冪次降低順序排列;如果某個冪次的係數為0,就不出現在輸入資料中了;0次冪的係數為0時還是會出現在輸入資料中。 // //輸出格式: //從最高冪開始依次降到0冪,如: //2x6+3x5+12x3-6x+20 //注意其中的x是小寫字母x,而且所有的符號之間都沒有空格,如果某個冪的係數為0則不需要有那項。 // //輸入樣例: //6 2 //5 3 //3 12 //1 6 //0 20 //6 2 //5 3 //2 12 //1 6 //0 20 //輸出樣例: //4x6+6x5+12x3+12x2+12x+40 //時間限制:500ms記憶體限制:32000kb import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int a ;//冪 int b ;//係數 int max = 0;//用來獲取最高冪 boolean isFirst = true;//判斷是否是首次輸出 int[] num1= new int[100];//定義陣列 int[] num2= new int[100];//定義陣列 //讀取第一個陣列 do { a = in.nextInt(); b = in.nextInt(); num1[a] = b; if(max<=a) { max=a; } } while(a!=0); //讀取第二個陣列 do { a = in.nextInt(); b = in.nextInt(); num2[a] = b; if(max<=a) { max=a; } } while(a!=0); int sum ;//等冪係數求和 for( int i=max;i>=0;i--){ sum =num1[i]+num2[i]; if(max==0) { System.out.print(sum); break;//如果max=0 直接跳出,程式不往下走 } if(sum!=0) { if(!isFirst) { if(sum>=0) { System.out.print("+");//不是首次輸入且係數大於0時輸出需要增加“+” } } if(sum!=1||i ==0) { System.out.print(sum);//冪為0,係數不為1 時輸出係數 } if(i!=0) { System.out.print("x");//冪不等於0時 輸出X } if(i!=0&&i!=1) { System.out.print(i);//冪不等於0且不等於1時,輸入冪 } isFirst = false; } if(isFirst && i ==0&&sum==0){ System.out.print(sum);//首次輸出係數不需要在前面“+” } } } }