gpt4 book ai didi

java - 关于打印多项式

转载 作者:行者123 更新时间:2023-11-29 04:39:38 26 4
gpt4 key购买 nike

这是存储和评估输入数字多项式的类的一部分这是方法

public class Polynomial{
int coef,power;

public Polynomial(int maxPower){
}

public void setTerm(int coefficient, int power) {
this.coef = coefficient;
this.power = power;
}

以及main方法中的入参

public static void main(String[] args){
Polynomial q = new Polynomial(2);
q.setTerm(2, 0);
q.setTerm(0, 1);
q.setTerm(3, 2);
System.out.println(q);
}

还有一个 toString 方法可以像这样打印出多项式

public String toString(){
return
}

我一直遇到 setTerm 方法只读取最后一个输入参数 q.setTerm(3,2) 的问题,我认为前两个被替换了。我能做什么?

最佳答案

因此在您的示例中,我们必须记住之前看到的术语。

我将按如下方式通过 map 完成。

import java.util.HashMap;
import java.util.Map;

/**
* Created by arunavs on 9/28/16.
*/
public class Polynomial {

// Key is power, value is coeff.
private Map<Integer, Integer> powerToCoeffMap = new HashMap<>();

// Maximal power allowed for polynomial.
private int maxPower;


public Polynomial(int maxPower){
this.maxPower = maxPower;
}

public void setTerm(int coefficient, int power) {
if (power > maxPower) {
// throw some exception here.
}
powerToCoeffMap.put(power, coefficient);
}

// terms may be rearranged in output.
public String toString() {
StringBuilder builder = new StringBuilder();
powerToCoeffMap.forEach((power, coeff) -> {builder.append(coeff + "x^" + power+ " ");});
return builder.toString();
}

public static void main(String args[]) {
Polynomial q = new Polynomial(2);
q.setTerm(2, 0);
q.setTerm(0, 1);
q.setTerm(3, 2);
System.out.println(q);
}
}

输出:2x^0 0x^1 3x^2

希望对您有所帮助。

关于java - 关于打印多项式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39758998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com