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

14. Numărul invers
a, inv întreg
citeşte a
inv ← 0 //initial inv este nul
cât timp a ≠ 0 execută
| inv ← inv * 10 + a % 10
| a ← a / 10
|▄

scrie inv

Se citeşte un număr întreg a. Să se realizeze un algoritm care să afiseze numărul invers. Numim număr invers (sau oglindit) numărul format cu cifrele citite de la dreapta la stanga.
De exemplu dacă se citeşte pentru a valoarea 327 atunci algoritmul va afişa numărul invers 723.

În pseudocod algoritmul de rezolvare este:
Explicarea algoritmului: Algoritmul descompune în cifre numărul a şi adaugă fiecare cifră la numărul invers.


15. Numărul palindrom
Se citeşte un număr întreg a. Să se realizeze un algoritm care să verifice dacă numărul citit este sau nu palindrom. Numim palindrom un număr care este egal cu oglinditul său.
De exemplu dacă se citeşte pentru a valoarea 323 atunci algoritmul va afişa „PALINDROM”, iar dacă va citi 123 va afişa „NU”.

În pseudocod algoritmul de rezolvare este:

a, inv, aux întreg
citeşte a
aux ← a //salvez val. iniţ. a în aux
inv ← 0 //iniţial inv este nul
cât timp aux ≠ 0 execută
| inv ← inv * 10 + aux % 10
| aux ← aux / 10
|▄
Dacă inv = a atunci
| scrie ”PALINDROM”
|altfel
| scrie ”NU”
|▄

Explicarea algoritmului: Algoritmul se bazează pe problema anterioară, de calcul al numărului invers. Un număr este palindrom dacă numărul iniţial citit este egal cu inversul sau.
De aceea algoritmul descompune în cifre numărul a şi formează numărul invers, dupa care compară acest număr invers cu numărul iniţial citit.
Am descompus în cifre o copie a numărului „a” deoarece în structura repetitivă se modifică valoarea numărului introdus, iar noi avem nevoie de valoarea iniţiala pentru verificare.

in C++ va rog repede

Anexe:

CasMatematician: #include

using namespace std;

int main()
{
//NUMAR INVERS
int n , inv , clona;
inv = 0;
cin>>n;
clona = n;
while (n != 0)
{
inv = inv * 10 + n % 10;
n = n / 10;
}

//NUMAR PALINDROM
if (clona == inv)cout<<"PALINDROM";
else cout<<"NU ESTE PALINDROM";
}
lucamold1: dar sunt doua?
lucamold1: care dintre ele este acesta?
ianisgamer9: Luca te ajut eu imediat. Stai sa ajung acasa

Răspunsuri la întrebare

Răspuns de ianisgamer9
2

14.

#include<iostream>

using namespace std;

int main()

{

int n , inv , clona;

inv = 0;

cin>>n;

clona = n;

while (n != 0)

{

inv = inv * 10 + n % 10;

n = n / 10;

cout<<inv<<endl;

}

15.

#include<iostream>

using namespace std;

int main()

{

   int a, inv, aux;

   cin>>a;

   aux=a;

   while (a!=0){

       aux=aux*10+a%10;

       aux=aux/10;

   }

   if (inv==a){

       cout<<"PALINDROM"<<endl;

     }

   else{

       cout<<"NU"<<endl;

}

   return 0;

}

sper ca te-am ajutat

Alte întrebări interesante