假设我有一个数字 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
我用什么算法来做这样的事情?
假设我有一个数字 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
我用什么算法来做这样的事情?
我不认为你需要一个算法。你所拥有的是:
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 替换为上限整数。
我认为以下代码可以满足您的需要:
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]);
}
假设您将最大数量作为输入。然后你会有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);
}
Integer value = 2;
Integer maxValue = 6;
Integer reverseCounter = 0;
for (int i = maxValue; i > 0; i--) {
reverseCounter++;
if (i == value) {
return reverseCounter;
}
}