• Acasă
  • Despre noi
  • Autori
  • Mărturii
  • Arhivă
  • Trimite Articol
  • Contact

WORLDIT

Lumea în 1 și 0.

  • Știri
    • Tehnologie
    • Tehnologie mobilă
    • Securitate
    • Developers
    • Știință
    • Benzi desenate
    • Jocuri
    • Intern
  • Tehnic
    • Browser
    • C#
    • C/C++
    • Challenge
    • HTML/CSS
    • Javascript, Ajax, jQuery
    • Open Source
    • PHP
    • Python
    • Securitate IT
    • Socializare
    • WordPress
    • Altele
  • Recenzii
  • Interviuri
  • Evenimente

Numere palindromice

18
  • Publicat de Andrei Avădănei
  • în Fără categorie
  • — 19 iul., 2009 at 2:01 pm

Un numar este palindrom daca citit de la dreapta spre stanga si de la stanga spre dreapta este acelasi.Exact asta va trebui sa facem si noi.Va trebui sa citim un numar,sa-l inversam si apoi sa verificam daca este identic sau nu . O alta modalitate consta in memorarea fiecarei cifre intr`un vector si printr`o parcurgere pana la jumatatea vectorului compari primul element cu ultimul. Aceasta metoda ramane pentru dumneavoastra ca tema 😀

#include <stdio.h>
int main()
{
	int n,nogl=0,copie;
	scanf("%d",&n);
	copie=n;
	while(n!=0)
	{
		nogl=nogl*10+n %10;
		n=n/10;
	}
	if(copie==nogl)
	{
		printf("palindrom");
	}
	else
	{
		printf("nu este palindrom");
	}
	return 0;
}

Daca acest articol contine o greseala, selecteaza cuvintele sau fraza gresita si tasteaza combinatia de taste Shift + Enter sau apasa click aici pentru a o raporta. Multumim!

— Andrei Avădănei a scris 1246 articole

Andrei scrie pe worldit.info din vara lui 2011. Este fondatorul Asociatiei Centrul de Cercetare in Securitate Informatica din Romania - CCSIR si coordoneaza DefCamp, cea mai importanta conferinta de securitate informatica & hacking din Europa Centrala si de Est. Andrei ofera in cadrul Bit Sentinel servicii de securitate informatica, penetration testing, security management, recuperarea de pe urma unui atac cibernetic, training-uri si workshop-uri.

  • Articolul anterior Facebook-250 milioane de utilizatori
  • Articolul următor Despre mine

18 Comentarii

  1. Pasarila spune:
    iulie 19, 2009 la 8:08 pm

    Uite si programul meu facut in C++. Sper ca l-am facut bine. Daca este nevoie sa comentez codul sa imi spuneti.

    #include <vector>
    #include <algorithm>
    #include <iostream>
    
    bool palindrom(int nr)
    {
         std::vector <int> v;
         int c = 0;
         while (nr != 0)
         {
             v.push_back(nr % 10);
             nr = nr / 10;
             c++;
         }
         int i;
         for (i = 0; i < c / 2; i++)
         if (v[i] != v[c - i - 1]) return false;
         
         return true;
    }
    
    int main() {
        int nr;
    std::cout << "Dati nr" ; std::cin>>nr;
    if (palindrom(nr) == false)
    std::cout < < "Numarul nu este palindrom" << std::endl;
    else
    std::cout << "Numarul este palindrom" << std::endl;
    system("pause");
    }
  2. Pasarila spune:
    iulie 19, 2009 la 8:09 pm

    Se para ca ai securizat blogul impotriva XSS-ului si nu imi apare nimic ce este pus intre .

  3. Avadanei Andrei spune:
    iulie 19, 2009 la 11:21 pm

    Am editat ce ai scris.Mai aveai cateva mici erori,acum merge ok 😉
    Cand vrei sa ai semnele : <> foloseste &lt; &gt;

  4. Pasarila spune:
    iulie 19, 2009 la 11:32 pm

    Ok, am sa folosesc. Insa, la cat mai multe probleme, tot asa de nivel: foarte usor si incet, incet sa urci stacheta.
    Btw, unde erau erorile ? Adica, eu cand am compilat nu am avut nicio problema.

  5. miculprogramator spune:
    iulie 23, 2009 la 11:38 am

    Eu am o varianta mai scutra, dar bazata pe acelasi principiu (a primului cod postat). Intreabare: de ce nu pot pune cod in comentarii, ia ca spam ?

    Apropo, as putea pune bucatica mea de implementare? 😀

  6. miculprogramator spune:
    iulie 23, 2009 la 11:42 am

    #include <iostream.h>
    int main()
    {
    int x,y=0,aux;
    cout<>x;
    aux=x;
    while (x)
    {
    y=y*10+(x%10);
    x=x/10;
    }
    if (aux==y) cout<<"nr palindrom";
    else cout<<"nr nu e palindrom";
    return 0;
    }

  7. Mihai spune:
    iulie 30, 2009 la 12:13 pm

    Nu e neaparat sa cititi un numar, se poate citi direct vectorul punand conditie la citire sa se ia cate o cifra in parte. Nici nu ai nevoie sa stii cate numere sunt. Astfel vei putea verifica si pentru numere extrem de mari!

  8. Avadanei Andrei spune:
    iulie 30, 2009 la 12:19 pm

    Probabil te refereai la faptul ca nu ai nevoie sa stii numarul de cifre. 🙂

  9. Ruxy spune:
    noiembrie 30, 2010 la 12:28 pm

    sunt la o clasa de intensiv si nu prea ma descurc…profa mea e cam rea , iar eu nu am facut deloc info in gimnaziu.am o problm ca tema ptr vineri tot cu un palindrom…lucrez deasemenea in C++ intr-un program numit codeblocks.. si am o intrebare….dak problm imi spune k este un sir de n nr naturale nu trebuie sa folosesc un for? chestia e k imi da eroare in codebloks si nush dc ❓ 😥 ma poate ajuta cineva?
    problema e : se citeste un sir de n numere naturale.Sa se afiseze cele ce sunt palindroame…
    multumesc anticipat

  10. Mihai spune:
    noiembrie 30, 2010 la 12:56 pm

    Problema trebuie sa o privesti asa:
    1 – fa un program/functie care verifica daca un singur numar e palindrom – partea importanta
    2 – for e ok pentru ca stii numarul de numere (n)
    ai putea sa postezi o parte de cod poate te putem ajuta, sa-ti spunem unde gresesti, ca de facut problema nu cred ca vrea nimeni sa-ti dea mura-n gura, in cel mai bun caz iti putem da un pseudo cod dupa care sa te ghidezi
    3 – pentru punctul 1 ai rezolvarea de la micul programator 🙂
    Spor

  11. Ruxy spune:
    noiembrie 30, 2010 la 1:16 pm

    #include
    using namespace std;
    int main (void)
    {
    int n ,i, inv , c , aux;
    aux=n;
    inv=0;
    for (i=1;i<=n;i++)
    {
    cout<>n;
    while (n!=0)
    {
    c=n%10;
    inv=inv*10+c;
    n=n/10;
    }
    if (inv==aux)
    cout<<" nr sunt "<<inv;
    else
    cout<<" nr nu este un palindrom "<<inv;
    }
    }

  12. Ruxy spune:
    noiembrie 30, 2010 la 1:19 pm

    asta e programul pe care l-am facut , dar nu stiu dak este corect insa….ptr exact cum ai spus tu imi afiseaza doar ptr un nr. (n)…nu ne-a predat despre vector insa si.. sau push back….apropo s-a introdus o mica eroare cout<>n; era inainte de a initializa n cu aux ❓ 😐

  13. Andrei Avadanei spune:
    noiembrie 30, 2010 la 1:29 pm

    @Ruxy

    Problema trebuie rezolvata in felul urmator (Mihai a avut dreptate, nu dam mura in gura).

    1. Citesti n (numarul de numere ce trebuie verificate).
    2. pentru i=1, i<=n, i++) 3. citesti al i-lea numar 4. il inversezi 5. verifici daca inversul este egal cu numarul initial (asta inseamna ca e palindrom) 3,4 si 5 se intampla in for-ul de la pasul 2. Multa bafta! 🙂

  14. Mihai spune:
    noiembrie 30, 2010 la 1:54 pm

    andrei a explicat bine problema!
    @Ruxy ai pierdut pe drum … partea cu a citi al i-lea numar
    sa ne spui ce ti-a iesit
    NU PE N = nr de numere din sir trebuie sa-l verifici ci pe fiecare numar din sir in parte

  15. Merry spune:
    ianuarie 23, 2011 la 5:50 pm

    salut….am si eu problema cu vectori care suna asa: se da un vector de tip intreg se cere sa se determine cel mai mare nr care se poate forma cu cea mai mica cifra a fiecarui component….si nu stiu cum s-o fac.. m-am gandit sa folosesc (logic) un for si max dar cum sa fac un interschimb? …. nu am nici o idee cum sa fac si profa mi -ar pune 2. Macar sa schitez o idee …
    ms anticipat:*

    • Andrei Avădănei spune:
      ianuarie 23, 2011 la 5:54 pm

      Se poate face destul de simplu. Pentru a pastra ordine pe blog te invitam aici sa te inscrii si sa postezi problema. In cel mai scurt timp posibil cineva iti va raspunde la ea.

  16. Mihai spune:
    ianuarie 23, 2011 la 7:27 pm

    @Merry:
    1. Ai 2 vectori:
    a) vectorul cu numerele tale
    b) vectorul cu cifra minima din fiecare numar – poti inlocui cu un string daca iti este mai usor lucrul cu siruri.
    2. Pentru a obtine cifra minima dintr-un numar:
    min = numar % 10;
    cat timp numar !=0 executa
    cifra = numar % 10;
    daca cifra < min atunci
    min = cifra;
    sfarsit daca;
    numar = numar / 10;
    sfarsit executa;
    si in vector_cifre pe pozitia corespunzatoare numarului pui valoare din min; //pentru lizibilitate si nu numai as recomanda sa iti creezi o functie separata.
    3. pentru a obtine in final numarul pur si simplu faci o sortare pe vectorul de cifre
    /*
    Iti spuneam sa folosesti un sir de caractere: in caz ca ai nevoie de o conversie, oricum va merge doar pentru numere cu un numar fix de cifre, daca vei avea nevoie pentru un numar cu numar foarte mare de cifre
    */
    Poti ignora ultimul comentariu ca nu este prea relevant 😀

  17. Chis Ioan spune:
    martie 29, 2015 la 10:57 am

    codul acesta mai eficient:

    #include

    using namespace std;

    bool estePalindrom(int nr)
    {
    int m=0;
    while(m>nr;
    if(estePalindrom(nr))
    cout<<"DA";
    else
    cout<<"NU";
    }


  • Facebook

    WorldIT.info
  • Ultimele Atacuri Cibernetice din Romania – RO Hacked

    • imacoolat-curat.ro
      | Published: februarie 3, 2020 - 2:00 am
    • hotel-palace.ro
      | Published: februarie 2, 2020 - 2:00 am
    • www.tahometru.ro
      | Published: februarie 1, 2020 - 2:00 am
    • alexisart.ro
      | Published: ianuarie 30, 2020 - 2:00 am
    • justshop.ro
      | Published: ianuarie 29, 2020 - 2:00 am
    RO Hacked este registrul atacurilor cibernetice din România.
  • Caută

  • Articole Recomandate

    • Recent Posts
    • Tags
    • Număr record de participanți la DefCamp 2015, cel mai important eveniment dedicat securității cibernetice din Europe Centrala si de Estdecembrie 2, 2015
    • La DefCamp 2015 vei afla prin ce tehnici pot fi evitate măsurile de securitate ale sistemelor informatice criticeoctombrie 16, 2015
    • Ultima sansa sa rezervi bilete de tip Early Bird la DefCamp 2015septembrie 1, 2015
    • 15 sfaturi despre cum poti deveni un programator bun venite de la specialisti romaniaugust 4, 2015
    • algoritmica Android antivirus Apple Avadanei Andrei benzi desenate BitDefender blog browser C++ Chrome concurs eveniment Facebook Firefox Google google chrome hacking html5 infografic informatica internet Internet Explorer IT javascript linux Microsoft Mozilla Firefox online PHP programare retea sociala review Romania securitate Tehnologie Twitter web Windows Windows 7 Wordpress WorldIT worldit.info Yahoo! YouTube
  • ianuarie 2021
    L Ma Mi J V S D
    « dec.    
     123
    45678910
    11121314151617
    18192021222324
    25262728293031
  • Link-uri Sponsorizate

    • laptop second hand

    • Calculatoare Second Hand

    • cod voucher pc garage

  • Home
  • Numere palindromice
  • Important

    • Bit Sentinel
    • Centrul de Cercetare în Securitate Informatică din România
    • DefCamp
  • Prieteni

    • BetiT.ro
    • bijuterii handmade
    • Computerica | Resurse gratuite PC
    • Descopera.org
    • Gadgeturi si IT – Giz.ro
  • Prieteni

    • PC – Config
    • RO Hacked
    • Stiri IT

Copyright © 2009-2014 WORLDIT. Toate drepturile Rezervate.
Termeni și condiții | Contact | Licența Creative Commons

Multumim foarte mult ca ne-ai raportat greseala! O vom remedia in cel mai scurt timp posibil.