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
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))
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