Răspuns :
Sa iti fie de folos. L-am facut in C++. Am folosit o forma mai nelineara. As recomanda cand ai timp sa incerci sa il faci cu backtraking.
#include <iostream>
using namespace std;
void Afisare(long* a,int n)
{
cout<< "DEBUG: ";
int i=0;
while(i<n && a[i]!=0)
{
cout<<a[i]<<" "<<endl;
i++;
}
cout<<endl;
}
int main()
{
int n;
cin>>n;
long *a;
bool gasit = false;
cout<<"DEBUG: n="<<n<<endl;
for(long i = 1;i<=2*n;i++)
{
long s = 0;
a = new long[2*n];
int index = 0;
for(long j=i;i<=n*n/2 && s < n*n;j++)
{
s+=j;
a[index] = j;
index++;
}
if(s==n*n)
{
gasit = true;
break;
}
}
if(gasit)
Afisare(a,2*n);
else
cout<<"DEBUG: NU ESTE NOROCOS!";
cout<<endl<<"DEBUG: Gata!";
return 0;
}
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.