zoukankan      html  css  js  c++  java
  • Java实现 蓝桥杯VIP 算法提高 多项式输出

    算法提高 多项式输出
    时间限制:1.0s 内存限制:512.0MB
    问题描述
      一元n 次多项式可用如下的表达式表示:
      f(x)=a[n]xn+a[n-1]x(n-1)+…+a[1]x+a[0], a[n]!=0
      其中,a[i]x^i称为i 次项, a[i]称为i 次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式:
      1. 多项式中自变量为x,从左到右按照次数递减顺序给出多项式。
      2. 多项式中只包含系数不为0 的项。
      3. 如果多项式n 次项系数为正,则多项式开头不出现“+”号,如果多项式n 次项系数为负,则多项式以“-”号开头。
      4. 对于不是最高次的项,以“+”号或者“-”号连接此项与前一项,分别表示此项系数为正或者系数为负。紧跟一个正整数,表示此项系数的绝对值(如果一个高于0 次的项,其系数的绝对值为1,则无需输出1)。如果x 的指数大于1,则接下来紧跟的指数部分的形式为“x^b”,其中b 为x 的指数;如果x 的指数为1,则接下来紧跟的指数部分形式为“x”;如果x 的指数为0,则仅需输出系数即可。
      5. 多项式中,多项式的开头、结尾不含多余的空格。
    输入格式
      输入共有2 行
      第一行1 个整数,n,表示一元多项式的次数。
      第二行有n+1 个整数,其中第i 个整数表示第n-i+1 次项的系数,每两个整数之间用空格隔开。
      1 ≤ n ≤ 100,多项式各次项系数的绝对值均不超过100。
    输出格式
      输出共1 行,按题目所述格式输出多项式。
    样例输入
    5
    100 -1 1 -3 0 10
    样例输出
    100x5-x4+x3-3x2+10
    样例输入
    3
    -50 0 0 1
    样例输出
    -50x^3+1

    import java.util.Scanner;
    
    
    public class 多项式输出 {
    	  public static void main(String[] args) {
    	        Scanner sc=new Scanner(System.in);
    	        int n=sc.nextInt();
    	        String s="";
    	        int m=n;
    	        boolean b=true;
    	        for(int i=0;i<n;i++){
    	            int a=sc.nextInt();
    	            if(m==1){
    	            	if(a<-1)
    	            		s=s+a+"x";
    	            	else if(a>1)
    	            		s=s+"+"+a+"x";
    	            	else if(a==1)
    	            		s=s+"+"+"x";
    	            	else if(a==-1)
    	            		s=s+"-"+"x";
    	            	break;
    	            }
    	            if(a>1)
    	                if(b)
    	                    s=s+a+"x^"+m;
    	                else
    	                    s=s+"+"+a+"x^"+m;
    	            else if(a<-1)
    	                s=s+a+"x^"+m;
    	            else if(a==-1||a==1)
    	                if(a==-1)
    	                    s=s+"-x^"+m;
    	                else if(a==1&&b)
    	                    s=s+"x^"+m;
    	                else
    	                	s=s+"+"+"x^"+m;
    	            m--;
    	            b=false;
    	        }
    	        m=sc.nextInt();
    	        if(m<0)
    	            s=s+m;
    	        else if(m>0)
    	            s=s+"+"+m;
    	        System.out.println(s);
    	    }
    }
    
    
  • 相关阅读:
    Leetcode Binary Tree Level Order Traversal
    Leetcode Symmetric Tree
    Leetcode Same Tree
    Leetcode Unique Paths
    Leetcode Populating Next Right Pointers in Each Node
    Leetcode Maximum Depth of Binary Tree
    Leetcode Minimum Path Sum
    Leetcode Merge Two Sorted Lists
    Leetcode Climbing Stairs
    Leetcode Triangle
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12948292.html
Copyright © 2011-2022 走看看