Além polinomial Java--

Curso: baseado em zero aprender a linguagem Java ( Weng Kai )


além polinomial

Título Conteúdo:

Pode ser expresso como um coeficiente polinomial de cada potência de x e o produto, tais como: 2x6 + 3x5 + 12x3 + 6x + 20

Agora, você tem que ler o programa em dois polinômios, então a saída destes dois polinômios, isto é, o coeficiente da potência correspondente e, em seguida, adicionar a saída. O poder do programa de processar até 100.

Formatos de entrada:

Para introduzir um total de dois polinómios, cada formato de entrada polinómio é o seguinte:

Dois dígitos por linha, representa um poder do primeiro segundo coeficiente, indica a energia de todos os coeficientes são números inteiros. A primeira linha deve ser o mais alto poder, a última linha de alimentação deve ser 0.

Não é necessariamente dispostos em ordem de poder de atenção entre as primeira e última fileira diminuindo, se o poder de um coeficiente de 0, não está presente nos dados de entrada; 0 Coeficiente de potência ainda está presente na entrada 0 dados.

Formatos de saída:

Sequencialmente das maiores quedas de energia para potência zero, tais como:

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

Nota onde x é minúscula, x, e não há espaços entre todos os símbolos, se um coeficiente de potência de 0 não precisa ter essa entrada.

entrada de amostra:

6 2

5 3

3 12

1 6

0 20

6 2

5 3

2 12

1 6

0 20

Exemplo de saída:

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

Prazo: 500ms Limite de memória: 32000kb


notas:

  • Coeficiente é 1 ou -1, a potência não é 1, tal como x e -x
  • Índice 1, 1 não é emitido como x
  • Coeficiente é 0, a saída correspondente não é monomial
  • Quando apenas um termo constante, somente o valor do termo constante de saída, que compreende 0

Um código:

import java.util.Scanner;

public class exercise{

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);
		int p = in.nextInt();//第一个多项式的最高幂
		int c = in.nextInt();//第一个多项式最高幂的系数
		int count = 0;
		int maxP = p;		
		
		//保存第一个多项式的系数
		int[] coefficients1 = new int[maxP+1];
		while( p!=0 ) {
			coefficients1[p] = c;
			p = in.nextInt();
			c = in.nextInt();
		}
		if( p==0 ) {
			count++;
			if(count==1) {
				coefficients1[p] = c;
				p = in.nextInt();//第二个多项式的最高幂
				c = in.nextInt();//第二个多项式最高幂的系数
			}
		}
		
		//保存第二个多项式的系数
		if(p > maxP) {
			maxP = p;
		}
		int[] coefficients2 = new int[maxP+1];
		while( p!=0 ) {
			coefficients2[p] = c;
			p = in.nextInt();
			c = in.nextInt();
		}
		if( p==0 ) {
			count++;
			if(count==2) {
				coefficients2[p] = c;
			}
		}
		
		//相同次幂系数相加
		int[] sumOfCoefts = new int[maxP+1];
		for(int i=0;i<sumOfCoefts.length;i++) {
			sumOfCoefts[i] = coefficients1[i] + coefficients2[i];
		}
		
		//输出多项式
		int num = 0;//已输出的单项式的个数
		int j=sumOfCoefts.length-1;
		for(;j>0;j--) {
			int ce = sumOfCoefts[j];
			if(ce!=0) {
				num++;
				if(num==1) {
					if(ce>1 || ce<-1) {
						System.out.print(ce);
					}
					else if(ce==-1) {
						System.out.print("-");
					}
					System.out.print("x");
					if(j!=1) {
						System.out.print(j);
					}
				}
				else {
					if(ce>0) {
						System.out.print("+");
						if(ce>1) {
							System.out.print(ce);
						}
						System.out.print("x");
					}
					else {
						if(ce<-1) {
							System.out.print(ce);
						}
						else {
							System.out.print("-");
						}
						System.out.print("x");
					}
					if(j!=1) {
						System.out.print(j);
					}
				}				
			}
		}
		//常数项
		int c0 = sumOfCoefts[0];
		if(num!=0 && c0>0) {
			System.out.print("+");
		}
		System.out.print(c0);
	}
}

Código II:

import java.util.Scanner;

public class Main{

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);
		int p,c;
		int count = 0;	
		int[] sumOfCoefts = new int[101];
		while(count<2) {
			p = in.nextInt();
			c = in.nextInt();
			sumOfCoefts[p] += c;
			if(p==0) {
				count++;
			}
		}
		
		//输出多项式
		int num = 0;//已输出的单项式的个数
		int j=sumOfCoefts.length-1;
		for(;j>0;j--) {
			int ce = sumOfCoefts[j];
			if(ce!=0) {
				num++;
				if(num==1) {
					if(ce>1 || ce<-1) {
						System.out.print(ce);
					}
					else if(ce==-1) {
						System.out.print("-");
					}
					System.out.print("x");
					if(j!=1) {
						System.out.print(j);
					}
				}
				else {
					if(ce>0) {
						System.out.print("+");
						if(ce>1) {
							System.out.print(ce);
						}
						System.out.print("x");
					}
					else {
						if(ce<-1) {
							System.out.print(ce);
						}
						else {
							System.out.print("-");
						}
						System.out.print("x");
					}
					if(j!=1) {
						System.out.print(j);
					}
				}				
			}
		}
		//常数项
		int c0 = sumOfCoefts[0];
		if(num!=0 && c0>0) {
			System.out.print("+");
		}
		System.out.print(c0);
	}
}

 

Publicado 37 artigos originais · ganhou elogios 47 · Exibições 100.000 +

Acho que você gosta

Origin blog.csdn.net/u013378642/article/details/83211698
Recomendado
Clasificación