• Java实现 洛谷 多项式输出


    题目描述
    一元nn次多项式可用如下的表达式表示:

    在这里插入图片描述

    其中,a_ix^ia
    i
    ​ x
    i
    称为ii次项,a_ia
    i
    ​ 称为ii次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式:

    多项式中自变量为 xx,从左到右按照次数递减顺序给出多项式。

    多项式中只包含系数不为00的项。

    如果多项式nn次项系数为正,则多项式开头不出现“+”号,如果多项式nn次项系数为负,则多项式以“-”号开头。

    对于不是最高次的项,以“+”号或者“-”号连接此项与前一项,分别表示此项系数为正或者系数为负。紧跟一个正整数,表示此项系数的绝对值(如果一个高于00次的项,其系数的绝对值为11,则无需输出 11)。如果xx的指数大于11,则接下来紧跟的指数部分的形式为“x^bx
    b
    ”,其中 b b为 x x的指数;如果 xx的指数为 11,则接下来紧跟的指数部分形式为“xx”;如果 xx 的指数为 00,则仅需输出系数即可。

    多项式中,多项式的开头、结尾不含多余的空格。

    输入输出格式
    输入格式:
    输入共有 22 行

    第一行 11 个整数,nn,表示一元多项式的次数。

    第二行有 n+1 n+1个整数,其中第 i i个整数表示第 n-i+1n−i+1 次项的系数,每两个整数之间用空格隔开。

    输出格式:
    输出共 11 行,按题目所述格式输出多项式。

    输入输出样例
    输入样例#1:
    5
    100 -1 1 -3 0 10
    输出样例#1:
    100x5-x4+x3-3x2+10
    输入样例#2:
    3
    -50 0 0 1
    输出样例#2:
    -50x^3+1

    import java.util.Scanner;
    
    
    public class duoxiangshishuchu2 {
    private static Scanner cin;
    	
    	public static void main(String args[]) throws Exception {
    		cin = new Scanner(System.in);
    		int x = cin.nextInt();
    		StringBuilder sb = new StringBuilder("");
    		int tmp;
    		for(int i=0;i<=x;i++) {
    			tmp = cin.nextInt();
    			if(0 != tmp) {
    				if(0 == (x-i)){
    					if(tmp>0) {
    						sb.append(String.format("+%d", tmp*1));
    					}else {
    						sb.append(String.format("%d", tmp*1));
    					}
    				}else if(1 == (x-i)){
    					if(1 == tmp) {
    						sb.append("+x");
    					}else if(-1 == tmp) {
    						sb.append("-x");
    					} else if(0 <= tmp) {
    						sb.append(String.format("+%dx", tmp));
    					}else {
    						sb.append(String.format("%dx", tmp));
    					}
    				}else {
    					if(1 == tmp) {
    						sb.append(String.format("+x^%d", x-i));
    					}else if(-1 == tmp) {
    						sb.append(String.format("-x^%d", x-i));
    					} else if(0 <= tmp) {
    						sb.append(String.format("+%dx^%d", tmp,x-i));
    					}else {
    						sb.append(String.format("%dx^%d", tmp,x-i));
    					}
    				}
    			}
    		}
    		String prefix = sb.substring(0, 1);
    		if(prefix.equals("+") ) {
    			System.out.println(sb.substring(1, sb.length()));
    		}else {
    			System.out.println(sb.toString());
    		}
    	}
    
    	
    
    
    }
    
    
  • 相关阅读:
    zjnu1725 COCI (类似二维树状数组模拟)
    zjnu1730 PIRAMIDA(字符串,模拟)
    hdu5365Shortest Path (floyd)
    表达式的转换 (模拟题)
    zjnu1709 UZASTOPNI (bitset,树形dp)
    zjnu1707 TOPOVI (map+模拟)
    zjnu1716 NEKAMELEONI (线段树)
    zjnuSAVEZ (字符串hash)
    codeforces 55D. Beautiful numbers (数位dp)
    TP5将入口文件放在Public中,能得到那些安全保障?
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13079216.html
Copyright © 2020-2023  润新知