Răspuns :
Răspuns:
#include <iostream>
using namespace std;
int n,s,i,ci,x,sw;
int cifre(int x)
{
int cx=x;
int fr[10]= {0};
while(x)
{
if (fr[x % 10])
break;
fr[x%10] = 1;
x/=10;
}
if(x==0)
{
cout<<cx<<endl;
return 1;
}
return 0;
}
int main()
{
cin>>n;
for(i=1; i<=999999999; i++)
{
ci=i;
s=0;
while(ci)
{
s=s+ci%10;
ci/=10;
}
if(s==n)
{
x=cifre(i);
if(x)
sw=1;
}
}
if(sw==0)
cout<<-1;
return 0;
}
Explicație:
Un program foarte ineficient dar functioneaza. Subprogramul cifre verifica daca cifrele sunt diferite si scrie numarul daca convine cerintei.
in main doar generez toate numerele si verific daca suma cifrelor este egala cu numarul
Revin maine daca il refac mai eficient
Vă mulțumim că ați ales să vizitați site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, vă rugăm să ne contactați. Revenirea dumneavoastră ne va bucura, iar pentru acces rapid, nu uitați să ne salvați la favorite!