Informatică, întrebare adresată de 747902, 9 ani în urmă

Se citeste de la tastatura un număr n întreg. Scrie un algoritm care afiseaza:
a) suma valorilor mai mici sau egale decât n
b) Produsul cifrelor numarului n
c) media aritmetică a valorilor pare a mai mici sau egale cu n
RAPID

Răspunsuri la întrebare

Răspuns de radugiulia
0
#include <iostream>
using namespace std;
int main(){    int n,v,p=1,s=0,nr=0,i,aux;    cin>>n;    aux=n;    v=n*(n+1)/2;        cout<<"Suma = "<<v<<endl;    while(n)    {            p=p*n%10;            n=n/10;    }    cout<<"Produsul = "<<p<<endl;    for(i=0;i<=aux;i+=2)    {        s=s+i;        nr++;    }
    cout<<"Media = "<<s/nr;    return 0;}

radugiulia: #include <iostream>

using namespace std;

int main()
{
int n,v,p=1,s=0,nr=0,i,aux;
cin>>n;
aux=n;
v=n*(n+1)/2;
cout<<"Suma = "<<v<<endl;
while(n)
{
p=p*n%10;
n=n/10;
}
cout<<"Produsul = "<<p<<endl;
for(i=0;i<=aux;i+=2)
{
s=s+i;
nr++;
}

cout<<"Media = "<<s/nr;
return 0;
}
Răspuns de rossetta
0
Pentru a rezolva optim a) si c), se folosesc 2 formule : Suma Gauss si Suma Gauss pentru numere pare
Nu ai oferit informatii despre restrictii. Am considerat n ca fiind int.
Pentru punctele a) si c),  am declarat tipul de data long long deoarece este vorba despre inmultiri si  este foarte posibil sa depaseasca limita superioara a int -ului.
Pentru b) nu am declarat produsul ca long long deoarece am presupus ca n este int si in felul acesta produsul cifrelor nu o sa depaseasca limita superioara a int-ului

#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
long long suma = (long long) n * (n + 1) / 2;
long long sumapara = (long long) n / 2 * (n / 2 + 1);
long long media = sumapara / (n / 2);
int produs = 1;
while(n > 0) {
  produs = produs * (n % 10);
  n = n / 10;
}
cout <<suma <<" " << media << " " << produs;
return 0;
}

Alte întrebări interesante