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

Cerința

Se citesc două numere naturale a şi b, care au acelaşi număr de cifre. Scrieți un program pentru a construi şi afişa un număr natural ccu proprietatea că fiecare cifră a acestuia este partea întreagă a mediei aritmetice a cifrelor situate in aceleaşi poziţii in numerele a şi b.

Date de intrare

Programul citește de la tastatură numerele ași b, separate prin spații.

Date de ieșire

Programul va afișa pe ecran numărul cconstruit.

Restricții și precizări

1 ≤ a, b ≤ 2.000.000.000

Exemplu:
Intrare
7532 5924

Iesire:
6723

Explicație

S-au citit a=7532 şi b=5924, se va afişa c=6723.​


boiustef: de unde e problema şi ce nume are? dacă e de pe pbinfo să putem să testăm codul ca să fie de 100
uionutalin: E de pe pbinfo, are numărul #3079 si numele : numere_a_b
boiustef: ok
uionutalin: Mai mult de 60 de puncte mie nu îmi dă
boiustef: era bine să discutăm şi codul tău să vedem unde greşeşti...
uionutalin: Am folosit gen o formulă c= int((a%10+b%10)/2))*z+c într-o structură while (a>0 && b>0), si unde z era un multiplu al lui 10.

Răspunsuri la întrebare

Răspuns de boiustef
4

Răspuns:

#include <iostream>

using namespace std;

int a,b,num,cif1,cif2,med, z=1;

int main()

{

   cin >> a >> b;

   while (a!=0)

   {

       cif1=a%10; cif2=b%10;

       med=(cif1+cif2)/2;

       a=a/10; b=b/10;

       num=med*z+num;

       z=z*10;

   }

   cout << num;

}

Explicație:

deoarece numerele au acelaşi număr de cifre, putem determina în paralel cifrele ce se află în aceleaţi poziţii, aflăm media lor şi generăm numărul căutat. Poate e necesar să explic cum creezi numărul în baza unui exemplu. Fie ai n=237 şi vrei să obţii nu oglinditul lui dar tot valoarea lui n.

z=1;

while (n)

{ cif=n%10; num=cif*z+num; n=n/10; z=z*10;}

execut[ pe hârtie şi vezi că se obţine tot valoarea lui n ... succese!!!


uionutalin: Multumesc mult, problema e ca le-am declarat eu long long int, pentru ca m-am luat după explicații ca a si b poate fi mai mic decât 2 miliarde, de aia nu mi-a iesit
uionutalin: Am înțeles varianta ta, ceva asemănător făcusem si eu,voiam să fiu sigur daca nu gresesc
Alte întrebări interesante