2017-06-06 4 views
0

Wie würde ich feststellen, ob eine Sequenz wahr ist? Nehmen wir an ich diesen CodeErmitteln, ob eine Sequenz wahr ist

int a = random.nextInt(10); 
int b = random.nextInt(10); 
int c = random.nextInt(10); 

haben, wie würde ich eine IF-Anweisung oder eine Schleife, um zu bestimmen, verwenden, falls/wenn a = 1, b = 2 und c = 3 (oder eine beliebige Kombination von a, b, und c ist nur eine Zahl voneinander entfernt. Wie 4,5,6 oder 7,8,9) ist in einer Reihenfolge wie angegeben?

+0

Sie müssen ein bisschen genauer über das, was Sie wollen. Was passiert wenn (a = 5, b = 4, c = 3) - sollte das wahr oder falsch sein? Was ist mit (a = 3, b = 1, c = 2)? Sie sollten sich genauer überlegen, welche Bedingungen genauer sind - und das gibt Ihnen möglicherweise auch einen Hinweis darauf, wie Sie diese berechnen können. – yshavit

Antwort

1

können Sie prüfen, ob der Abstand zwischen den beiden Zahlen gleich eins ist:

if(b-a == 1 && c-b == 1) 
+0

Aus der OP-Beschreibung, ich denke, (5, 4, 3) sollte auch zu wahren, was dies nicht behandeln wird. Ich denke (3, 1, 2) sollte auch stimmen. Und ich bin mir nicht sicher (5, 5, 5). – yshavit

+0

ja, im Grunde alles, was in der Reihenfolge 1,2,3 oder 4,5,6 usw. usw. ist. Keine 5,5,5 oder 7,7,7 –

0
int min = Math.min(a, Math.min(b, c)); 
boolean isSequence = Arrays.equals(IntStream.range(min, min+3).toArray(), new int[]{a,b,c}); 

Populate Array als Sequenz (range) und Vergleichen mit ursprünglichen Werte (als Array)

0

I denke, es sollte so sein,

public static boolean checker() { 
    // you can do this without worrying about overflow 
    // because nextInt method generates a number btw 0(inclusive) and 10(exclusive) 
    return (b-a == 1 && c-b == 1) || (b-a == -1 && c-b == -1); 
    //   1, 2, 3   or   3, 2, 1 
} 
Verwandte Themen