Cerinţa
Să se scrie o funcție C++ care să realizează permutarea circulară spre stânga a cifrelor unui număr natural. Numărul este transmis prin intermediul unui parametru care se întoarce din funcție modificat.
Restricţii şi precizări
numele funcției va fi perm
funcția va avea un singur parametru, n
parametrul n va fi un număr natural nenul mai mic decât 1.000.000.000
Exemplu
Dacă n = 1372, după apelul funcției perm, valoarea lui n va fi 3721.
Important
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.
Răspunsuri la întrebare
Răspuns de
1
#include <iostream>
using namespace std;
char sp1[]=" ";
int x1[10], n1, nrsol1=0;
void Afisare()
{ int i;
cout<<sp1;
for(i=1;i<=n1;i++)
cout<<x1[i]<<" ";
cout<<endl;
nrsol1++;
}
int Valid(int k)
{ int i;
for(i=1;i<=k-1;i++)
if (x1[k]==x1[i]) return 0;
return 1;
}
void BackRec1(int k)
{ int i;
for(i=1;i<=n1;i++)
{ x1[k]=i;
if (Valid(k))
if (k==n1) Afisare();
else BackRec1(k+1);
}
}
int main()
{ cout<<endl<<endl<<sp1<<"Permutarile primelor n numere naturale (n<10)"<<endl;
cout<<endl<<sp1<<" Dati valoarea lui n: "; cin>>n1;
cout<<endl;
BackRec1(1);
cout<<endl<<sp1<<"Numar solutii: "<<nrsol1;
return 0;
}
using namespace std;
char sp1[]=" ";
int x1[10], n1, nrsol1=0;
void Afisare()
{ int i;
cout<<sp1;
for(i=1;i<=n1;i++)
cout<<x1[i]<<" ";
cout<<endl;
nrsol1++;
}
int Valid(int k)
{ int i;
for(i=1;i<=k-1;i++)
if (x1[k]==x1[i]) return 0;
return 1;
}
void BackRec1(int k)
{ int i;
for(i=1;i<=n1;i++)
{ x1[k]=i;
if (Valid(k))
if (k==n1) Afisare();
else BackRec1(k+1);
}
}
int main()
{ cout<<endl<<endl<<sp1<<"Permutarile primelor n numere naturale (n<10)"<<endl;
cout<<endl<<sp1<<" Dati valoarea lui n: "; cin>>n1;
cout<<endl;
BackRec1(1);
cout<<endl<<sp1<<"Numar solutii: "<<nrsol1;
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Biologie,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă