Răspuns :
#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;
}
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;
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!