Răspuns :
Păi, în primul rând le poți împărți în grupe:
12,1232,123432,1234565432
Fiecare grupă are cu 2 elemente mai mult decât precedenta. De aici deducem că a N-a grupă începe pe poziția N*(N-1)+1. De aici vom putea afla grupa lui k, adică x=√k sau √k+1. Acum mai trebuie să aflăm poziția mijlocului secvenței și vom putea deduce elementul k în funcție de distanță până la mijloc. Ai mai jos un cod C++.
int x=sqrt(k);
if(x*(x+1)+1<=k)
x++;
int start=x*(x-1)+1;
int mij=start+x;
int t=x+1-abs(k-mij);
12,1232,123432,1234565432
Fiecare grupă are cu 2 elemente mai mult decât precedenta. De aici deducem că a N-a grupă începe pe poziția N*(N-1)+1. De aici vom putea afla grupa lui k, adică x=√k sau √k+1. Acum mai trebuie să aflăm poziția mijlocului secvenței și vom putea deduce elementul k în funcție de distanță până la mijloc. Ai mai jos un cod C++.
int x=sqrt(k);
if(x*(x+1)+1<=k)
x++;
int start=x*(x-1)+1;
int mij=start+x;
int t=x+1-abs(k-mij);
Vă mulțumim că ați vizitat platforma noastră dedicată Informatică. Sperăm că informațiile oferite v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, nu ezitați să ne contactați. Așteptăm cu nerăbdare să vă revedem și nu uitați să ne salvați în lista de favorite!