Ich habe ein Programm für Codechef und seine falsche apparently (obwohl alle Tests positiv waren). Der Code ist:LCM und GCD funktioniert nicht
#include <iostream>
using namespace std;
int g (int a,int b){
return b == 0 ? a : g(b, a % b);
}
int l (int a, int b){
return (a*b)/(g(a,b));
}
int main() {
int n;
cin >> n;
int a[n],b[n];
for (int x = 0;x<n;x++){
cin >> a[x] >> b[x];
}
for (int x = 0;x<n;x++){
cout << g(a[x],b[x]) << " "<< l(a[x],b[x]) << endl;
}
return 0;
}
Codechef mir nicht sagen, welche ganzen Zahlen arbeiten nicht, und im ziemlich sicher, dass meine gcd Funktion echt ist.
Haben Sie überlegt, was passieren würde, wenn 'a' und/oder' b' in die Nähe von INT_MAX kommen? – Frank
Was meinen Sie mit "falsch falsch (obwohl alle Tests positiv waren)"? Warum ist es falsch? Welche Tests waren "positiv"? Bitte geben Sie weitere Details zu den spezifischen Problemen an, denen Sie begegnen. –
@Frank Die Parameter für das Problem liegen unter int max. – Jayylmao