Wykonanie pętli w cyklu

0

Witam serdecznie, jestem początkującym programistą i mam problem z taką rzeczą, że chyba aż wstyd pytać. Ale do rzeczy.

Mam tablicę o rozmiarze n elementów, którą muszę przejść tak jakby cyklicznie... do pewnego momentu.

tab[10] = 1234567890

I muszę przeiterować po tej tablicy nie do końca, tylko jeszcze zahaczyć o pierwsze 5 elementów... żeby przejść w taki sposób:
123456789012345

Przy czym nie mogę tym "zabić" za bardzo czasów. Tablice są bardzo duże. Na "chama" bym to zrobił, ale wydaje mi się, że za dużo obliczeń wprowadzam i przy wielkich pętlach mi się wszystko wysypie.

0 = 0 mod 9
1 = 1 mod 9
2 = 2 mod 9
3 = 3 mod 9
4 = 4 mod 9
5 = 5 mod 9
6 = 6 mod 9
7 = 7 mod 9
8 = 8 mod 9
9 = 9 mod 9
0 = 10 mod 9 //źle
1 = 11 mod 9 //źle
2 = 12 mod 9 //źle
3 = 13 mod 9 //źle
4 = 14 mod 9 //źle

0

A teraz proszę po polsku, bo z twojego bełkotu nic nie zrozumiałem. Jeśli chcesz iterować w kolejności 123456789012345 to zacznij od i=1 i rób i%10

0

Tworzę tablicę wystąpień dla pewnego algorytmu i pozostała mi już tylko ta cykliczność.

Mam tablicę numerowaną od 0 do n. A chcę przejść od 0, przez n, do 0+5. Obrazując:

|5|6|7|8|9|5|6|7|8| //Wartości

|0|1|2|3|4|5|6|7|8| //Indeksy

Chcę, żeby zachowywało się tak, jakby tablica wyglądała tak:
|5|6|7|8|9|5|6|7|8|5|6|7|8|9| //Wartości

|0|1|2|3|4|5|6|7|8|0|1|2|3|4| //Indeksy

0

Tworzę tablicę wystąpień dla pewnego algorytmu i pozostała mi już tylko ta cykliczność.

Mam tablicę numerowaną od 0 do n. A chcę przejść od 0, przez n, do 0+5. Obrazując:

|5|6|7|8|9|5|6|7|8| //Wartości
--------------------
|0|1|2|3|4|5|6|7|8| //Indeksy

Chcę, żeby zachowywało się tak, jakby tablica wyglądała tak:

|5|6|7|8|9|5|6|7|8|5|6|7|8|9| //Wartości
-------------------------------
|0|1|2|3|4|5|6|7|8|0|1|2|3|4| //Indeksy
0

No to tak jak zrobiłeś w pierwszym poście tylko modulo 10

0

No to chcesz iterwać wreszcie do 8 czy do 9? I od 1 czy od 0? Bo co chwila zmieniasz wersję!
http://ideone.com/kn4PFI
tu masz wersję która pozwoli ci wybrać od jakiego indeksu chcesz startować i na jakim kończyć.

#include <iostream>
#include <cmath>
using namespace std;

int main() {
	int current = 0;
	int n = 100;
	int last_index = 9;
	int iterations = last_index+6;
	while(iterations){
		cout<<current;
		current =  (current+1)%(last_index+1);
		iterations--;
	}
	return 0;
}
0

Shalom, przepraszam, że chaotycznie napisałem. W pierwszym poście były wartości, a nie indeksy - nie sprecyzowałem, bo naturalnym wydało mi się iterowanie od zera... tym bardziej, że niżej przy moich próbach modulo to pokazałem. Ale racja, mój błąd i sorry za zamieszanie.

Dziękuję za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1