int lista[20] = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}; for (int l=0;l<10000000;l++){ lista[0] ++; //lisätään ensmimäisen alkion arvoa for(int i =0;i<20;i++) //käydään lista läpi { if (lista[i] == 92) //jos alkion arvo 92 { lista[i] = 0; //laitetaan se 0 lista[i+1] ++; //kasvatetaan seuraavan alkion arvoa } }
Listan arvo 10miljoonan kierroksen jälkeen:
59,42,76,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
Osaisiko joku auttaa tekemään laskurin joka laskee listan alkioiden arvot tietyn määrää kierroksia jälkeen?
Tyyliin:
int* get_list(long long int iteration_index)
{
}
Minä osaan!
get_list =: 3 : '|. _1 + (20 $ 92) #: y' get_list 10^7
Tuloste:
59 42 76 11 _1 _1 _1 _1 _1 _1 _1 _1 _1 _1 _1 _1 _1 _1 _1 _1
Täällä voi testata (paina oikealta "Run"): https://jsoftware.github.io/j-playground/bin/html2/#base64=Z2V0X2xpc3QgPTogMyA6ICd8LiBfMSArICgyMCAkIDkyKSAjOiB5JwpnZXRfbGlzdCAxMF43
Toteutus sisältää bugin, jonka löytämisen ja korjaamisen jätän sinulle harjoitukseksi.