我的LinkedList通过在每个节点中包含一个数字来表示大数字。
我可以使用以下代码在LinkedList中表示正大整数:
public BigInteger(int x)
{
list = new LinkedList<Integer>();
while (x > 0)
{
list.push(( x % 10 ));
x = x / 10;
}
}
声明:
BigInteger bigPositive = new BigInteger(91234)
制作:
[9,1,2,3,4]
但是,我不知道如何表示大的负整数,如-9321312345
答案 0 :(得分:1)
您可以将1或0推到列表的前面,指示它是正还是负。例如:
等等。您只需知道将第一个数字解释为符号(+/-),而不是该值的一部分。
答案 1 :(得分:1)
如果BigInteger是您自己的自定义类,您可以添加一个布尔属性来确定整数是正数还是负数。
然后,在构造函数中,您可以确定整数的符号并相应地设置该属性。
答案 2 :(得分:0)
你可以像二进制一样做;通过让最前面的数字确定符号
0b0100 == 4
0b1100 == -4
同样你可以写
{0, 1, 1} == 11
{1, 1, 1} == -11,
虽然这偏离了最初的想法;既然你正在使用整数,你可以这样做:
{-1, 1} == -11
{ 1, 1} == 11
答案 3 :(得分:0)
public BigInteger(int x)
int x
这个值输入本身就是限制所以你永远不能过去。
为什么不呢?
public BigInteger(int x){
bigIntValue = x;
}
因为那不是重点。您希望能够从输入中创建大于预期int
的值。
更好的选择IMO会添加一个String
作为输入,然后有一个操作可以将int's
或你想要的东西推到{{1}的后面或前面}}
linklist
如果需要,您甚至可以通过将转换器从char编写为int来将列表类型更改为int。