我目前正在使用BigInteger类为我的一个班级做作业。我遇到的问题是使用.pow方法。它给了我这个错误 BigNumberExample1.java:25:错误:不兼容的类型:BigInteger无法转换为int BigInteger input4 =(a.pow(b).mod(n));
// Use sort for date and then use it again for upvotes_count
Post.find()
.sort({_id: -1})
.sort({upvotes_count: -1})
.limit(3)
.exec( function(err, posts) {
if (err) res.send(err);
console.log(posts);
res.json(posts);
});
// Use sort for date, limit the results to three, and then
// use it again for upvotes_count
Post.find()
.sort({_id: -1})
.limit(3)
.sort({upvotes_count: -1})
.exec( function(err, posts) {
if (err) res.send(err)
console.log(posts);
res.json(posts);
});
// Use sort for date and upvotes_count in one step.
Post.find()
.sort({_id: -1, upvotes_count: -1})
.limit(3)
.exec( function(err, posts) {
if (err) res.send(err);
console.log(posts);
res.json(posts);
});
答案 0 :(得分:1)
答案 1 :(得分:1)
问题是BigInteger.pow()
需要int
而不是BigInteger
。由于b
是BigInteger
,您可以执行以下操作:
BigInteger input4 = a.pow(b.intValue()).mod(n);
但如果b
大于int
,则会中断。您最好的选择是使用BigInteger.modPow()
,因为这需要2 BigIntegers
。然后你最终得到:
BigInteger input4 = a.modPow(b, n);
答案 2 :(得分:0)
对我来说就像a.pow(b)期待'b'是一个整数,而不是一个大的int
尝试BigInteger input4 =(a.pow(b.intValue())。mod(n));