public class Main {
public static class Term {
private final int coefficient;
private final int exponent;
public Term (final int coefficient,final int exponent) {
this.coefficient = coefficient;
this.exponent = exponent;
}
@Override
final String sign
= getSign
(coefficient
); final String number
= getNumber
(coefficient
); final String exponentStr
= getExponentStr
(coefficient, exponent
);
return String.
format ("%s%s%s",sign, number, exponentStr
); }
private String getExponentStr
(final int coefficient,
final int exponent
) { if (coefficient == 0 || exponent == 0) {
return "";
}
if (exponent == 1) {
return "x";
}
return "x^" + exponent;
}
private String getNumber
(final int value
) { final int absValue
= Math.
abs(value
);
return absValue
== 1 ? "" : Integer.
toString (absValue
); }
private String getSign
(final int value
) { return value < 0 ? "-" : "";
}
}
System.
out.
println(new Term
(0,
2)); System.
out.
println(new Term
(1,
2)); System.
out.
println(new Term
(-1,
2)); System.
out.
println(new Term
(5,
1)); System.
out.
println(new Term
(5,
0)); }
}
ICAgIHB1YmxpYyBjbGFzcyBNYWluIHsJCQoJCXB1YmxpYyBzdGF0aWMgY2xhc3MgVGVybSB7CgkJCXByaXZhdGUgZmluYWwgaW50IGNvZWZmaWNpZW50OwoJCQlwcml2YXRlIGZpbmFsIGludCBleHBvbmVudDsKCQkKCQkJcHVibGljIFRlcm0gKGZpbmFsIGludCBjb2VmZmljaWVudCxmaW5hbCBpbnQgZXhwb25lbnQpIHsKCQkJCXRoaXMuY29lZmZpY2llbnQgPSBjb2VmZmljaWVudDsKCQkJCXRoaXMuZXhwb25lbnQgPSBleHBvbmVudDsJCQkKCQkJfQoJCQoJCQlAT3ZlcnJpZGUKCQkJcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKCQkJCWZpbmFsIFN0cmluZyBzaWduID0gZ2V0U2lnbiAoY29lZmZpY2llbnQpOwoJCQkJZmluYWwgU3RyaW5nIG51bWJlciA9IGdldE51bWJlciAoY29lZmZpY2llbnQpOwoJCQkJZmluYWwgU3RyaW5nIGV4cG9uZW50U3RyID0gZ2V0RXhwb25lbnRTdHIgKGNvZWZmaWNpZW50LCBleHBvbmVudCk7CgkJCQkKCQkJCXJldHVybiBTdHJpbmcuZm9ybWF0ICgiJXMlcyVzIixzaWduLCBudW1iZXIsIGV4cG9uZW50U3RyKTsKCQkJfQoJCQoJCQlwcml2YXRlIFN0cmluZyBnZXRFeHBvbmVudFN0cihmaW5hbCBpbnQgY29lZmZpY2llbnQsIGZpbmFsIGludCBleHBvbmVudCkgewoJCQkJaWYgKGNvZWZmaWNpZW50ID09IDAgfHwgZXhwb25lbnQgPT0gMCkgewoJCQkJCXJldHVybiAiIjsKCQkJCX0KCQkJCWlmIChleHBvbmVudCA9PSAxKSB7CgkJCQkJcmV0dXJuICJ4IjsKCQkJCX0KCQkJCXJldHVybiAieF4iICsgZXhwb25lbnQ7CgkJCX0KCQkKCQkJcHJpdmF0ZSBTdHJpbmcgZ2V0TnVtYmVyKGZpbmFsIGludCB2YWx1ZSkgewoJCQkJZmluYWwgaW50IGFic1ZhbHVlID0gTWF0aC5hYnModmFsdWUpOwoJCQkJCgkJCQlyZXR1cm4gYWJzVmFsdWUgPT0gMSA/ICIiIDogSW50ZWdlci50b1N0cmluZyAoYWJzVmFsdWUpOwoJCQl9CgkJCgkJCXByaXZhdGUgU3RyaW5nIGdldFNpZ24oZmluYWwgaW50IHZhbHVlKSB7CgkJCQlyZXR1cm4gdmFsdWUgPCAwID8gIi0iIDogIiI7CgkJCX0KCQl9CgkKCQlwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKCQkJU3lzdGVtLm91dC5wcmludGxuKG5ldyBUZXJtICgwLCAyKSk7CgkJCVN5c3RlbS5vdXQucHJpbnRsbihuZXcgVGVybSAoMSwgMikpOwoJCQlTeXN0ZW0ub3V0LnByaW50bG4obmV3IFRlcm0gKC0xLCAyKSk7CgkJCVN5c3RlbS5vdXQucHJpbnRsbihuZXcgVGVybSAoNSwgMSkpOwoJCQlTeXN0ZW0ub3V0LnByaW50bG4obmV3IFRlcm0gKDUsIDApKTsKCQl9Cgl9Cg==