Teste propuse pentru Bacalaureat, Informatica, 2020
Problema 2 din Subiectul al treilea din Testul 1 - Teste propuse pentru Bacalaureat, Informatica, Profil real, specializare matematică-informatică / matematică-informatică intensiv informatică
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.
Programul afişează pe ecran tabloul construit, fiecare linie a tabloului pe câte o linie a ecranului, cu valorile aflate pe aceeaşi linie separate prin câte un spaţiu.
Exemplu: dacă n=4 și k=3, se afişează pe ecran tabloul alăturat.
|
1 1 1 2 2 2 3 3 3 4 4 4
2 2 2 3 3 3 4 4 4 5 5 5
3 3 3 4 4 4 5 5 5 6 6 6
4 4 4 5 5 5 6 6 6 7 7 7
|
Rezolvare:
#include <iostream>
using namespace std;
int main()
{
int a[100][100],n,k,i,j;
cin>>n;
cin>>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;
}
}
Comentarii
Trimiteți un comentariu