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

#3303
Pentru un număr dat x, considerăm următoarele noțiuni:
oglinditul lui x reprezintă numărul scris cu cifrele lui x în ordine inversă;
urma lui x reprezintă diferența dintre numărul format cu atâtea cifre de 9 câte cifre are x și numărul x;
numărul x este curat dacă oglinditul său este egal cu urma sa. De exemplu, 27 este un număr curat.

Cerința

Se dau cel mult 1000 numere naturale mai mici decât 100.000.000. Să se stabilească despre fiecare număr dacă este sau nu curat.

Date de intrare

Fișierul de intrare nrcurat.in conține pe prima linie cel mult 1000 numere naturale mai mici decât 100.000.000, separate prin spații.

Date de ieșire

Fișierul de ieșire nrcurat.out va conține pe prima linie pentru fiecare număr x din fișierul de intrare valoarea 1 dacă x este curat sau 0 în caz contrar. Valorile sunt separate prin câte un spațiu.

Restricții și precizări

în fișier sunt cel mult 1000 de numere naturale mai mici decât 100.000.000

Exemplu

nrcurat.in

345 18 53 986310 467 1638

nrcurat.out

0 1 0 1 0 1

Explicație

Numerele 18, 986310 și 1638 sunt numere curate.

Răspunsuri la întrebare

Răspuns de MariusCelTrifan
2

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int n,i,aux1,aux2,aux3;

   cout<<"n=";

   cin>>n;

   int a[n];

   for(i=1;i<=n;i++)

   {

       cout<<"a["<<i<<"]=";

       cin>>a[i];

   }

   for(i=1;i<=n;i++)

   {

       aux1=a[i];

       aux2=0;

       aux3=0;

       while(a[i]!=0)

       {

           aux2=aux2*10+a[i]%10;

           a[i]=a[i]/10;

           aux3=aux3*10+9;

       }

       if(aux3-aux2==aux1)

           cout<<1<<" ";

       else cout<<0<<" ";

   }

return 0;

}

Explicație:

Multumesc+5*+cel mai inteligent raspuns?

scuze ca nu este in fisier, eu nu am ajuns inca pana acolo

Alte întrebări interesante