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

Cerința
Se dau n numere naturale. Se construiește o valoare selectând de la fiecare număr cifra maximă. Determinați pătratul acestei valori.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire
Programul va afișa pe ecran valoarea cerută.

Restricții și precizări
2 ≤ n ≤ 9
cele n numere citite vor fi mai mici decât 1.000.000.000.000.000.000.
Poate cineva sa imi corecteze co dul pentru ca atunci cand bag in code blocks imi da rezultatul bun pentru n=2 dar nu si pentru n=3.



#include

using namespace std;

int main()
{ int n,m,x,maxi,p,uc;
cin>>n;
m=0;
p=1;
while(n>0)
{
cin>>x;
maxi=0;
while(x!=0)
{
uc=x%10;
if(uc>maxi)
maxi=uc;
x=x/10;
}
m=m*p+maxi;
p=p*10;
n=n-1;
}
cout< return 0;
}

Răspunsuri la întrebare

Răspuns de vladalex40
1

Ti-am scris in mare pseudocod combinat cu java

//Citesti de la tastatura cate numere n vrei sa ai (nu mai scriu codul pentru asta)

//Dupaia verifici ca 2<=n<=9  

       if(n<=2 || n>=9 ) System.out.println("nu sunt cate numere trebuie");

       else{

           //Citesti cu un for vectorul de numere a[n] (nu mai scriu nici pt asta codul)

           int a[n];  

Ex: pt n=3

a[0] = 123;   a[1] = 45321;  a[2] = 451;

           int maxim = 18 ; //numarul poate sa aiba maxim 18 cifre

           int max[maxim];  //folosim pentru a afla maximul fiecarui numar (spre ex max[0] va fi maximul primului numar, max[1] maximul celui de-al doilea numar)

           int c[maxim]; //vector in care o sa salvam fiecare cifra dintr-un numar

           for(int k=0 ; k<n; k++)  //trecem prin toate numerele

               for(int i=0; i<maxim ; i++) {

                   c[i] = a[k] % 10;  //ia ultima cifra

                   if ( c[i] > max[k] ) max[k] = c[i] ;  //cauta maximul si il pune in max[k]

                   if (a[k] / 10 == 0) break;  //daca numarul ajunge la o cifra atunci iese din bucla for i

                   a[k] = a[k] / 10;  //face numarul a[k] sa fie fara ultima cifra

               }

 Acum stii fiecare maxim din fiecare numar si le unesti toate intr-un text  

           String nr_final = ""+max[0];

               for(int j=1;j<n;j++){

               nr_final = ""+nr_final+max[j];

           }

           System.out.println("Nr final="+nr_final);

       }

Poti daca mai vrei sa convertesti dupaia stringul inapoi in int.

Alte întrebări interesante