2017-05-29 1 views
-1

Supposons que notre séquence estComment obtenir un n-ième élément d'une séquence indépendante?

3, 9, 7, 1 et se répète 3, 9, 7, 1, et ainsi de suite ...

Comment pouvons-nous vérifier quelle valeur va être par exemple 605e élément (dans ce cas ça va être 3)

PS: Par "indépendant" je veux dire que nous ne pouvons pas trouver de formule mathématique.

Merci à l'avance: P

Modifier l'ajout de code inefficace.

public static int determine_value_at_position_of_an_array(List<int> sequence, int power) 
    { 
     int counter = 1; /// This index is going to value of power. 
     int counter_2 = 0; /// This variable is responsible for jumping between [0..sequence.count-1] 
     int current_value = 0; 

     for (; counter<= power; counter++) 
     { 
      current_value = sequence[counter_2]; 
      if (counter_2==sequence.Count-1) /// if we're at last element, then go to 1st 
      { 
       counter_2 = 0; 
      } 
      else 
      { 
       counter_2++; 
      } 
     } 

     return current_value; 
    } 
+1

S'il vous plaît nous montrer ce que vous avez essayé d'atteindre cet objectif. Un code par exemple, n'a pas besoin de fonctionner. Pour plus d'informations sur la façon de poser des questions s'il vous plaît vérifier le [centre d'aide] (https://stackoverflow.com/help/how-to-ask) – Deathstorm

+0

@Deathstorm Ajouté le code. – Xiaox

Répondre

0

Si vous savez comment les éléments bien la partie répétitive de votre séquence a (dans votre exemple 4), vous pouvez utiliser l'opérateur modulo (la plupart du temps% ou mod) pour recevoir l'élément Nième. ici: 605% 4 = 1 => premier élément => trois.

EDIT ajouté du code

int valueAtN(List<Integer> sequence, int n) { 
    return sequence.get(n % sequence.size()); 
}