java多项式导数处理指数为0
我有一个方法,它将多项式Linked List
作为参数,并返回一个新列表,它是多项式的导数
以下是我所拥有的:
private PolyNode derivative(PolyNode poly) {
PolyNode temp = new PolyNode(0, 0);
PolyNode res = temp;
// While both Lists are not empty
while (poly != null) {
if (poly.power > 0) {
temp.next = new PolyNode(poly.coef * poly.power, poly.power - 1);
temp = temp.next;
poly = poly.next;
}
}
// Return new List, the result polynomial
return res.next;
}
当我运行程序时,它从未完成编译并部分返回列表;只有幂大于0的项。 我试着加上
if (poly.power == 0) {
temp.next = new PolyNode(0,0);
temp = temp.next;
poly = poly.next;
}
但这似乎不起作用。有什么想法吗
# 1 楼答案
仔细观察你的
while
循环:poly
不会更改,除非其power
大于零。因此,当找到一个0power
的poly
时,您的循环就卡住了将其更改为:
这样,您可以有效地抛出任何常量(
power == 0
),同时仍然在poly
列表上循环