JAVA入門 第五周 1多項式


1

多項式加法(5分)

題目內容:

一個多項式可以表達為x的各次冪與系數乘積的和,比如:

 

現在,你的程序要讀入兩個多項式,然后輸出這兩個多項式的和,也就是把對應的冪上的系數相加然后輸出。

程序要處理的冪最大為100。

 

輸入格式:

總共要輸入兩個多項式,每個多項式的輸入格式如下:

每行輸入兩個數字,第一個表示冪次,第二個表示該冪次的系數,所有的系數都是整數。第一行一定是最高冪,最后一行一定是0次冪。

注意第一行和最后一行之間不一定按照冪次降低順序排列;如果某個冪次的系數為0,就不出現在輸入數據中了;0次冪的系數為0時還是會出現在輸入數據中。

 

輸出格式:

從最高冪開始依次降到0冪,如:

  1. 2x6+3x5+12x3-6x+20

注意其中的x是小寫字母x,而且所有的符號之間都沒有空格,如果某個冪的系數為0則不需要有那項。

 

輸入樣例:

  1. 6 2
  2. 5 3
  3. 3 12
  4. 1 6
  5. 0 20
  6. 6 2
  7. 5 3
  8. 2 12
  9. 1 6
  10. 0 20

輸出樣例:

  1. 4x6+6x5+12x3+12x2+12x+40

時間限制:500ms內存限制:32000kb

 

 

import java.util.Scanner; 

public class hello
{

	public static void main(String[] args) 
	{
		// TODO Auto-generated method stub
		//多項式
		Scanner in = new Scanner(System.in);
		int[] a,b; //存放兩個多項式
		int max=0;  //存放最高冪數組的長度
		//第一個多項式開始
		int n=in.nextInt(); //讀入冪並臨時保存到n
		int x=in.nextInt(); //讀入系數並臨時保存到x
		a=new int[n+1]; //以最大冪確定數組的長度並實例化數組
		a[n]=x;
		do
		{
			n=in.nextInt(); //讀入冪
			x=in.nextInt(); //讀入系數
			a[n]=x;
			
		}while(n!=0); //如果n為則第一個多項讀入結束,循環結束。
		
		//第二個多項開始
		n=in.nextInt();
		x=in.nextInt();
		b=new int[n+1];
		do
		{
			n=in.nextInt();
			x=in.nextInt();
			b[n]=x;
			
		}while(n!=0);
		
		if(a.length>b.length)  //計算最長數組長度
		{
			max=a.length;
		}
		else
		{
			max=b.length;
		}
	for(int j=max-1;j>=0;j--)
	{
		int sum=0;
		if(j<a.length&&a[j]!=0)
		{
			sum=sum+a[j];
		}
		if(j<b.length&&b[j]!=0)
		{
			sum=sum+b[j];
		}
		if(sum==0) //如果系數為零則跳出本次循環
			continue;
		if(j>1)  //冪大於1時的輸出格式
		{
			System.out.print(sum+"x"+j+"+"); 
		}else if(j==0) //冪為時的輸出格式
			
		{
			System.out.print(sum); 
		} else if(j==1)//冪1為時的輸出格式
		{
			System.out.print(sum+"x"+"+"); 
		}
	}
	}
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM