Informatică, întrebare adresată de dds12, 8 ani în urmă

Scrieţi un program C/C++ care citeşte de la tastatură două numere naturale din intervalul [2,20], n și k, şi construieşte în memorie un tablou bidimensional cu n linii şi n∙k coloane, numerotate începând cu 1, astfel încât fiecare linie i (i∈[1,n]) memorează un şir crescător de termeni cu proprietatea că primul termen este i, fiecare valoare apare în şir de exact k ori și oricare doi termeni alăturați au valori egale sau consecutive.

Răspunsuri la întrebare

Răspuns de mirunapamiowy622
15

Răspuns:

#include <iostream>

using namespace std;

int a[20][40];

int main()

{int n,k,i,j;

cin>>n>>k;

for(i=1;i<=k*n;i++)

   a[1][i]=(i-1)/k+1;

for(i=2;i<=n;i++)

   for(j=1;j<=n*k;j++)

   a[i][j]=a[i-1][j]+1;

for(i=1;i<=n;i++)

{

   for(j=1;j<=n*k;j++)

       cout<<a[i][j]<<" ";

   cout<<endl;

}

   return 0;

}

Explicație:

am construit prima linie (am gasit o formula)

celelalte linii le formez folosindu-ma de prima

Alte întrebări interesante