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

Salut! Se pot face aproximari prin adaos in C++? De exemplu, o problema imi cere sa aflu cate sticle de x litri trebuie sa fie deschise pentru a umple un vas de y litri si daca introduc numerele 5 si 8, imi afiseaza 1 si ar trebui sa afiseze 2...

Răspunsuri la întrebare

Răspuns de CinevaFaraNume
2

Folosind libraria cmath:

#include <cmath>

Ai acces la functiile floor si ceil:

floor: cel mai mare numar intreg mai mic decat parametrul primit(aproximare prin scadere)

ceil: cel mai mic numar intreg mai mare decat parametrul primit(aproximare prin adaos)

(mai e si functia round() pentru rotunjire).

Toate aceste functii primesc un singur parametru de tip double:

Pentru aproximare prin adaos a unei impartiri intre numere intregi:

ceil(((double)a)/((double)b)).

Rezultatul va fi tot de tipul double,deci daca ai nevoie de un numar intreg:

(int)ceil(((double)a)/((double)b))


AdeElena: Multumesc mult!!
Răspuns de boiustef
1

Răspuns:

#include <iostream>

using namespace std;

int x,y, nr;

int main()

{

   cout << "x= "; cin >> x;

   cout << "y= "; cin >> y;

   nr=y/x;

   if (x*nr!=y) ++nr;

   cout << "necesare " <<nr;

   return 0;

}

Explicație:

Acest    if (x*nr!=y) ++nr;

se putea înlocui prin   if (y%x > 0) ++nr;

cu acelaşi rezultat


AdeElena: Multumesc frumos!!
boiustef: cu plăcere, succese!
Alte întrebări interesante