Stwórz listę, która zawiera reszty z dzielenia przez k pierwszych n wyrazów
ciągu zdefiniowanego nastepująco:
\(\displaystyle{ a_0=2}\) oraz \(\displaystyle{ a_{i+1}=2a_i-i}\)
Pamiętaj, nie dzielimy przez 0!
To mój kod:
Kod: Zaznacz cały
wezel* stworz_liste(int n, int k)
{
if (k==0)
{
cout<<"Nie mozna dzielic przez 0."<<endl;
return NULL;
}
wezel* lista = new wezel;
lista->wartosc = 2;
wezel* glowa = lista;
int* ciag = new int[n];
ciag [0] = 2;
for (int j=0; j<n-1; ++j)
ciag[j+1] = 2*(ciag[j] - (j));
wezel* tmp = new wezel;
for (int i=1; i<n; ++i)
{
tmp->wartosc = ciag[i]&k;
lista->nast = tmp;
lista = lista->nast;
tmp = tmp->nast;
}
return glowa;
}