2017-01-11 1 views
0

Ich habe eine Reihe von Zahlen von 0 bis 9. Jetzt im unteren Code, ich bekomme eine Zahl, die zwischen 0 und 9 einschließlich sein wird.Wie bekomme ich eine neue Nummer von der ursprünglichen Nummer?

int number = getRandomNumber(); // this will give me number between 0 and 9 inclusive 
int newNumber = .... 

Jetzt Basis auf number Variable, ich möchte eine newNumber erzeugen, die auch zwischen 0 und 9 inklusive sein sollte. Diese newNumber wird -2 der ursprünglichen number sein.

  • Lassen Sie uns jetzt sagen, dass ich number als 5 bekommen. Dann brauche ich newNumber, um 3 zu sein, der -2 der ursprünglichen Zahl ist.
  • Jetzt sagen wir, ich bekomme number als 2. Dann brauche ich newNumber zu sein 0, die -2 der ursprünglichen Nummer ist.
  • Jetzt sagen wir, ich bekomme number als 9. Dann brauche ich newNumber, um 7 zu sein, der -2 der ursprünglichen Zahl ist.
  • Jetzt sagen wir, ich bekomme number als 1. Dann brauche ich newNumber zu 9, die -2 der ursprünglichen Zahl ist.
  • Jetzt sagen wir, ich bekomme number als 0. Dann brauche ich newNumber um 8 zu sein, was -2 der ursprünglichen Nummer ist.

Was die Logik für diese sein wird, so dass ich meine newNumber bekommen kann, die wird es immer sein -2 ursprünglichen Zahl und wird in zwischen 0 und 9.

Grundsätzlich meine Verwirrung ist, wie richtig zu machen Wert für 1 und 0 Fall.

Also für 1 Fall, wenn ich -2 subtrahieren, werde ich -1 bekommen, aber das ist nicht richtig Antwort Ich möchte zwischen 0 und 9 in sein, so bin ich nicht sicher, was hier die Logik sein wird?

+0

wenn weniger als 2 10 hinzufügen? –

Antwort

1

Es ist einfach.

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

Ein weiterer Ansatz ist

int newNumber = (10 + number - 2) % 10; 
+1

Ich habe immer die Macht von Modulo bewundert. +1 – Mordechai

Verwandte Themen