Java实现多项式加法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/H_lukong/article/details/81282104

题目内容:

一个多项式可以表达为x的各次幂与系数乘积的和,比如:

2x6+3x5+12x3+6x+20

现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。

程序要处理的幂最大为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

public static void main(String[] args) {
		// TODO Auto-generated method stub
       Scanner con=new Scanner(System.in);
//********************************实现输入************************************
       int a=con.nextInt();                  //输入幂次(第一个一定最大,最后一个一定最小。中间可以不按顺序)
       int [] powers=new int[a+1];          //建立幂次数组
       int b;                              //定义系数项
       int max=a;                         //记录最高幂次
       int count=0;                      //记录输入的多项式次数
       while(a>=0&&a<=100)
       {
    	   if(a==0)
    	   {
    		   if(count==0)
    			   {
    			   count++;
    			   }//当第一次输入的幂次是0,则 记录下来。count加1
    		   else 
    		   {
    			   b=con.nextInt();
    			   powers[a]=powers[a]+b;
    			   break;
    		   }
    	   }
    	   b=con.nextInt();
    	   powers[a]=powers[a]+b;
    	   a=con.nextInt();
       }
//*********************************实现输出************************************
       for(int i=max;i>=0;i--) 
       {
    	 //如果最高次幂是0,那么直接输出常数项然后跳出循环
    	   if(max==0)
    	   {
    		   System.out.println(powers[a]); 
    		   break;
    	   }
    	 //0系数项不需要输出,直接下一次循环
    	   else if(powers[i]==0)
    	   {
    		   continue;
    	   }
    	   else if(powers[i]>0)
    	   {
    		   if(powers[i]!=1) 
    		   {
   				if(i>1) 
   				{
   					System.out.print(powers[i]+"x"+i);
   				}
   				else if(i==1)
   				{
   					System.out.print(powers[i]+"x");
   				}
   				else if(i==0)
   				{
   					System.out.print(powers[i]);
   				}  
   			   }
    	   } 
    	   if(i!=0){System.out.print("+");}
       }
}

猜你喜欢

转载自blog.csdn.net/H_lukong/article/details/81282104