Cerința
Fie a
și b
două numere naturale nenule. Cu ajutorul lor se pot forma ecuațiile matematice de tipul:
1) a+x=b
Cerința
Fie a
și b
două numere naturale nenule. Cu ajutorul lor se pot forma ecuațiile matematice de tipul:
1) a+x=b
2) x+a=b
3) a-x=b
4) x-a=b
5) a*x=b
(unde a
divide b
)
6) x*a=b
(unde a
divide b
)
7) a:x=b
(unde b
divide a
)
8) x:a=b
Scrieți un program care să citească din fișierul ecuatie.in
o ecuaţie de tipul precizat în enunț şi care să determine:
a) tipul ecuației citite;
b) soluția ecuației obținută prin rezolvarea acestei ecuații.
Date de intrare
Fişierul ecuatie2.in
conţine pe prima linie ecuația, ca în exemplu.
Date de ieșire
Fişierul de ieşire ecuatie2.out
va conține pe prima linie un număr natural reprezentând tipul ecuaţiei, iar pe a doua linie, un număr natural reprezentând soluția ecuației.
Restricții și precizări
1 ≤ a ≤ 30 000
1 ≤ b ≤ 30 000
- Fișierul de intrare conține o singură ecuație; soluția ecuației este un număr natural.
Exemplul 1:
ecuatie2.in
23+x=100
ecuatie2.out
1 77
Exemplul 2:
ecuatie2.in
x*20=1400
ecuatie2.out
6 70
Exemplul 3:
ecuatie2.in
15:x=3
ecuatie2.out
7 5
Explicații
Pentru primul exemplu, ecuația este de tipul 1
. Soluția ecuaţiei 23+x=100
este x=77
.
Pentru al doilea exemplu, ecuația este de tipul 6
. Soluția ecuaţiei x*20=1400
este x=70
.
Pentru al treilea exemplu, ecuația este de tipul 7
. Soluția ecuaţiei 15:x=3
este x=5
.
#include <bits/stdc++.h> using namespace std; ifstream cin("ecuatie2.in"); ofstream cout("ecuatie2.out"); int main() { char s; cin >> s; if(s == 'x') { int a = 0 , b = 0; cin >> s; if(s == '+') { cout << 2 << '\n'; cin >> s; while(s != '=') { a = a * 10 + (int)s - 48; cin >> s; } cin >> b; cout << b - a; } if(s == '-') { cout << 4 << '\n'; cin >> s; while(s != '=') { a = a * 10 + (int)s - 48; cin >> s; } cin >> b; cout << a + b; } if(s == '*') { cout << 6 << '\n'; cin >> s; while(s != '=') { a = a * 10 + (int)s - 48; cin >> s; } cin >> b; cout << b / a; } if(s == ':') { cout << 8 << '\n'; cin >> s; while(s != '=') { a = a * 10 + (int)s - 48; cin >> s; } cin >> b; cout << a * b; } } else { int a = 0 , b = 0; while(s >= '0' && s <= '9') { a = a * 10 + (int)s - 48; cin >> s; } if(s == '+') { cin >> s; cout << 1 << '\n'; cin >> s >> b; cout << b - a; } if(s == '-') { cin >> s; cout << 3 << '\n'; cin >> s >> b; cout << a - b; } if(s == '*') { cin >> s; cout << 5 << '\n'; cin >> s >> b; cout << b / a; } if(s == ':') { cin >> s; cout << 7 << '\n'; cin >> s >> b; cout << a / b; } } }