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

Realizaţi un program care calculează media aritmetică a tuturor numerelor palindrom din intervalul [a.b]. Exemplu: Pentrun a=8 şi b=13 se va afişa 9.33


GabiAlex99: Am inteles, mersi :d. Btw, tu inveti algoritmica doar facand probleme, sau mai te uiti la videoclipuri/documentatie pentru "tips and tricks" sa zic asa :))
CinevaFaraNume: Algoritmica? mai mult pe pbinfo si la scoala.
CinevaFaraNume: Si documentatie evident
CinevaFaraNume: Dar in documentatie doar la ce fac anumite functii, nu cum se rezolva o problema
GabiAlex99: Am inteles..Eu nu am avut ocazia sa invat la scoala, am fost la stiinte ale naturii pana acum, am invatat singur, de asta caut niste tips sa invat mai repede (Vreau sa merg la olimpiada de anu' viitor). Tu ce zici, sa ma axez mai mult pe algoritmica sau sa invat si "industrie" (Web, Java etc..) Daca ai un discord/skype sa vorbim mai multe, poate m-ar ajuta :). Mersi si multa bafta!
CinevaFaraNume: Poti vorbi in privat?
GabiAlex99: Nu cred ca merge pe brainly :)) daca nu ai skype etc cred ca merge pe pbinfo
CinevaFaraNume: Discord: tmp#7230
ModFriendly: Mesageria privata (inbox-ul) din Brainly poate fi accesata de catre un user doar dupa ce user-ul a raspuns la 1000 de intrebari.
CinevaFaraNume: Am doar 600 si o pot folosi

Răspunsuri la întrebare

Răspuns de ModFriendly
6

#include <iostream>

#include <iomanip>

using namespace std;

int main()

{

   int a, b, c, i, nr, x, uc, k; /* numere intregi */

   float S; /* numere reale. OBS: l-am declarat pe S ca fiind real pentru ca atunci cand il impart la k, sa imi dea nr real */

   cin>>a>>b; /* citim de la tastatura numerele a si b */

   if(a>b)

      {c=a;     /* daca a este mai mare decat b, atunci a si b isi interschimba valorile, astfel incat a<b */

       a=b;     /* [a, b] e un interval! De aceea nu putem avea a>b */

       b=c;}

   S=0; /* S este suma numerelor palindrom */

   k=0; /* k este contorul care numara cate numere palindrom avem */

   for(i=a; i<=b; i++) /* cu acest program luam numerele intregi de la a la b si lucram cu ele */

   {

       x=i; /* facem copie lui i */

       nr=0; /* acest nr va fi x citit de la coada la cap */

       while(x!=0) /* se interpreteaza: "cat timp x mai are cifre */

       {

           uc=x%10; /* uc este ultima cifra a lui x  */

           nr=nr*10+uc;

           x=x/10; /* taiam ultima cifra a lui x */

       }

       if(nr==i) /* daca numarul citit de la coada la cap este egal cu numarul citit de la cap la coada atunci e palindrom */

           { S=S+nr;

            k=k+1; }

   }

if (k !=0)

   cout<<fixed<<setprecision(2)<<S/k;

   return 0;

}

Anexe:

Trollea: ce contorizeaza
CinevaFaraNume: Pentru cate numere palindrome s-au gasit
Trollea: aaaaaa
ModFriendly: Da, ai nevoie la media aritmetica
Trollea: si face media cu ele
Trollea: am inteles
ModFriendly: Bun atunci
Trollea: multumesc
Trollea: bye guys
ModFriendly: O exceptie pe aici, ca-s fata :))
Răspuns de BigBenN
4

Răspuns:

#include <iostream>

using namespace std;

int main()

{   int a,b,i,j,numarInvers=0,c,numar,numarator=0,numitor=0,x;

   cin >> a;

   cin >> b;

   if(a>b){

       x=a;

       a=b; // aici se schimba a cu b intre ei daca a>b

       b=x;

   }

   for(i=a;i<=b;i++){

       numar = i;

       c=0;

       numarInvers=0;

       while(numar!=0){

           c = numar % 10; // Obtinem ultima cifre din numar

       numarInvers = numarInvers * 10 + c; // Construim numarul invers

       numar = numar / 10; // Taiem ultima cifra

       }

       if(numarInvers==i){

        numarator=numarator+i;

        numitor++;

       }

   }

if (numitor!=0){

    cout << (float) numarator/numitor;

}

else

   cout << 0;

}

Anexe:
Alte întrebări interesante