如何从原始号码获取新号码?

时间:2017-01-11 01:36:08

标签: java algorithm

我有一系列从0到9的数字。现在在下面的代码中,我得到一个介于0和9之间的数字。

Your URL can't contain a query string or invalid special characters

现在基于int number = getRandomNumber(); // this will give me number between 0 and 9 inclusive int newNumber = .... 变量,我想生成一个number,它也应该在0到9之间。此newNumber将为原始newNumber的-2。

  • 现在让我说numbernumber。然后我需要5newNumber,这是原始数字的-2。
  • 现在让我说3number。然后我需要2newNumber,这是原始数字的-2。
  • 现在让我说0number。然后我需要9newNumber,这是原始数字的-2。
  • 现在让我说7number。然后我需要1newNumber,这是原始数字的-2。
  • 现在让我说9number。然后我需要0newNumber,这是原始数字的-2。

这样做的逻辑是什么,这样我才能得到8,它始终是原始数字的-2,并且在0到9之间。

基本上我的困惑是如何为1和0案件获得正确的价值。

因此对于newNumber情况,如果我减去1,我会得到-2,但这不是正确答案我希望在0到9之间,所以我不确定会是什么这是逻辑?

2 个答案:

答案 0 :(得分:4)

另一种方法是

import static com.mongodb.client.model.Accumulators.*;
import static com.mongodb.client.model.Aggregates.*;
import static com.mongodb.client.model.Projections.computed;
import static java.util.Arrays.asList;
import static java.util.Collections.EMPTY_LIST;

Bson group = group(null,
    sum("followersCount", computed("$size",
        computed("$ifNull",
            asList("$followers", EMPTY_LIST)))),
    sum("followingCount", computed("$size",
        computed("$ifNull",
            asList("$i_am_following", EMPTY_LIST))))
);

AggregateIterable <Document> output = userinfo.aggregate(asList(group));

答案 1 :(得分:1)

这很简单。

newNumber = number -2;
if(newNumber < 0) newNumber = newNumber+10;