-6

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

1-10 图表:

Give 1 return 9
Give 2 return 8
Give 3 return 7
Give 4 return 6
Give 5 return 5

我用什么算法来做这样的事情?

4

4 回答 4

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,则没有倒数。因此,您可能还想为以下内容添加一个捕获:

if (((myCollection.Length *.5).Round) == mySelection) { //Inverse does not exist!!!}

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

于 2013-06-15T01:43:24.370 回答
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]);
}
于 2013-06-15T02:02:40.457 回答
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);
}
于 2013-06-16T17:22:08.587 回答
0
Integer value = 2;
Integer maxValue = 6;
Integer reverseCounter = 0;
for (int i = maxValue; i > 0; i--) {
    reverseCounter++;
    if (i == value) {
        return reverseCounter;
    }
}
于 2019-03-28T18:50:17.847 回答