Răspuns :
Prima problema o faci usor daca iti faci o functie pentru cmmdc si o structura pentru fractie ca sa nu te mai bati cu perechi de numere la intamplare intr-un vector.
Apoi nu ai decat sa iti parcurgi fractiile(cu un for sau ce ce doresti tu) si sa le aduni pe rand cu o fractie care initial este [tex] \frac{0}{1} [/tex], le vei aduna asa cum ai invatat in clasa a 5a cu aducere la acelasi numitor si apoi le vei reduce impartind si numitorul si numaratorul la cmmdc dintre ei.
A doua problema este mai usor daca o abordezi cu siruri de caractere, daca ai numarul ca sirde caractere poti sa vezi direct ce lungime are, si poti sa muti direct o bucata de sir mai la stanga sau mai la dreapta ca sa elimini cifra din mijloc in caz de nevoie.
Iti las niste exemple ceva mai avansate pentru ambele probleme in caz ca te atrage mai mult sa inveti chestii noi decat sa scrii 1000 linii de cod. Tot ce am folosit acolo se poate gasi cu o simpla cautare google sau imi poti da mesaj si iti voi spune ce sa citesti:
Apoi nu ai decat sa iti parcurgi fractiile(cu un for sau ce ce doresti tu) si sa le aduni pe rand cu o fractie care initial este [tex] \frac{0}{1} [/tex], le vei aduna asa cum ai invatat in clasa a 5a cu aducere la acelasi numitor si apoi le vei reduce impartind si numitorul si numaratorul la cmmdc dintre ei.
A doua problema este mai usor daca o abordezi cu siruri de caractere, daca ai numarul ca sirde caractere poti sa vezi direct ce lungime are, si poti sa muti direct o bucata de sir mai la stanga sau mai la dreapta ca sa elimini cifra din mijloc in caz de nevoie.
Iti las niste exemple ceva mai avansate pentru ambele probleme in caz ca te atrage mai mult sa inveti chestii noi decat sa scrii 1000 linii de cod. Tot ce am folosit acolo se poate gasi cu o simpla cautare google sau imi poti da mesaj si iti voi spune ce sa citesti:
1) #391 :
#include <iostream>
using namespace std;
int a[11];
int b[11];
int main() {
int n;
cin >> n;
int p2 = 1;
for(int i = 0; i < n; i++){
cin >> a[i] >> b[i];
p2 = p2 * b[i];
}
int s1 = 0, s2 = p2;
for(int i = 0; i < n; i++){
s1 = s1 + a[i] * p2 / b[i] ;
}
int r, rezultat1 = s1, rezultat2 = s2;
while(s2 > 0) {
r = s1 % s2;
s1 = s2;
s2 = r;
}
cout << rezultat1 / s1 <<" " << rezultat2 / s1;
return 0;
}
2) #410 :
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int nn = n, p = 1, nr= 0, r;
int x, y;
while (nn != 0) {
nr++;
nn = nn /10;
}
for (int i = 0; i < nr /2; i++)
p = p * 10;
x = n % p;
n = n / p;
if (nr % 2 == 0)
y = n;
else
n = n / 10;
y = n;
while ( y != 0) {
r = x % y;
x = y;
y = r;
}
cout<<x;
return 0;
}
#include <iostream>
using namespace std;
int a[11];
int b[11];
int main() {
int n;
cin >> n;
int p2 = 1;
for(int i = 0; i < n; i++){
cin >> a[i] >> b[i];
p2 = p2 * b[i];
}
int s1 = 0, s2 = p2;
for(int i = 0; i < n; i++){
s1 = s1 + a[i] * p2 / b[i] ;
}
int r, rezultat1 = s1, rezultat2 = s2;
while(s2 > 0) {
r = s1 % s2;
s1 = s2;
s2 = r;
}
cout << rezultat1 / s1 <<" " << rezultat2 / s1;
return 0;
}
2) #410 :
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int nn = n, p = 1, nr= 0, r;
int x, y;
while (nn != 0) {
nr++;
nn = nn /10;
}
for (int i = 0; i < nr /2; i++)
p = p * 10;
x = n % p;
n = n / p;
if (nr % 2 == 0)
y = n;
else
n = n / 10;
y = n;
while ( y != 0) {
r = x % y;
x = y;
y = r;
}
cout<<x;
return 0;
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile și inspiraționale. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, suntem aici pentru a vă ajuta. Ne face plăcere să vă revedem și vă invităm să adăugați site-ul nostru la favorite pentru acces rapid!