如何在Java中“反转”数字

时间:2013-06-15 01:41:10

标签: java math return-value invert

假设我有一个数字1-5,现在如果我有2,我想要4作为输出,如果我有3然后有3作为输出,如果我有1然后4作为输出。这是我想要的图表:

1-10图表: 给1回报9 给2回报8 给3返回7 给4返回6 给5返回5

我会使用什么算法来做这件事?

4 个答案:

答案 0 :(得分:2)

我没有看到你需要一个算法。你拥有的是:

InverseNumber = (myCollection.Length - MySelection);

这就是偶数所需的一切。

以1 - 6的集合为例:  给2; 6 - 2 = 4.如果给出4,6 - 4 = 2。

赔率问题需要稍微不同:

1 - 5; 1给定1在索引0处,相反的是5,2给定且逆(5-2)是3.但是如果给出3,则没有逆。所以你可能还希望为:

添加一个catch
if (((myCollection.Length *.5).Round) == mySelection) { //Inverse does not exist!!!}

如果您只使用整数而不使用数组,那么只需将myCollection.Length替换为上限整数。

答案 1 :(得分:2)

我认为以下代码可以满足您的需求:

int a[] = new a[length_needed];
int counter = length_needed;
for(int c = 0; c < length_needed; c++) {
   a[c] = counter;
   counter--;
}
int number_inputed;
for(int c = 0; c < length needed; c++) {
   if(c == number_inputed) System.out.println(a[c]);
}

答案 2 :(得分:0)

假设您输入的是最大数字。那么你将得到0-n个数字。例如,如果9是最大数字,您将拥有0-9

然后你可以这样做:

public static void main(String[] a) {
   int max = a[0]; // read values from cmd line args

   int forWhichNum = a[1]; //for which number we need its inverse

   Sop(max- forWhichNum);
}

答案 3 :(得分:0)

Integer value = 2;
Integer maxValue = 6;
Integer reverseCounter = 0;
for (int i = maxValue; i > 0; i--) {
    reverseCounter++;
    if (i == value) {
        return reverseCounter;
    }
}