#2641 AF
Cerința
Gigel are ca temă la matematică să precizeze valoarea de adevăr a unor expresii de forma nr1 semn nr2 = nr3, unde nr1, nr2 și nr3 sunt numere naturale, iar semn poate fi +, -, x sau : reprezintând adunarea, scăderea, înmulțirea și împărțirea. Ajutați-l pe Gigel să rezolve tema la matematică.
Date de intrare
Fișierul de intrare af.in conține pe prima linie numărul de expresii n, iar pe următoarele n linii cele n expresii. Cele trei numere, semnul operației și egal sunt separate câte un spațiu.
Date de ieșire
Fișierul de ieșire af.out va conține pe fiecare linie valoarea de adevăr (Adevarat sau Fals) a expresiei corespunzătoare din fișierul de intrare.
Restricții și precizări
1 ≤ n ≤ 10
0 ≤ nr1, nr2, nr3 și rezultatul operației din membrul stâng ≤ 1017
nr1 ≥ nr2
rezultatul operația nr1 : nr2 este câtul împărțirii lui nr1 la nr2
dacă expresia este de forma nr1 : 0 = nr3 atunci este considerată falsă.
Exemplu
af.in
4
1 + 1 = 2
3 x 3 = 6
5 - 1 = 4
8 : 2 = 3
af.out
Adevarat
Fals
Adevarat
Fals
Explicație
1 + 1 = 2;
3 × 3 ≠ 6;
5 – 1 = 4;
8 : 2 ≠ 3
Răspunsuri la întrebare
Răspuns de
5
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f("af.in");
ofstream g("af.out");
char semn, egal;
long long int a, b, c, i, n, ok;
f >> n;
for (i=1; i<=n; ++i)
{
ok=0;
f >> a >> semn >> b >> egal >> c;
if (ok==0 && semn=='+' && a+b==c) ok=1;
if (ok==0 && semn=='-' && a-b==c) ok=1;
if (ok==0 && semn=='x' && a*b==c) ok=1;
if (ok==0 && semn==':') {
if (b==0) ok=0;
else if (a/b==c) ok=1;}
if (ok) g << "Adevarat" << "\n";
else g << "Fals" << "\n";
}
return 0;
}
Lorraine:
Mie imi da 0 puncte la solutia asta, desi in codeblocks merge. Ai cumva solutia oficiala?
Alte întrebări interesante
Engleza,
8 ani în urmă
Engleza,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă