我编写了一个codechef程序和它的错误(虽然所有的测试都是正面的)。代码是:LCM和GCD不能正常工作
#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不会告诉我什么整数不工作,我敢肯定我的gcd功能是合法的。
你有没有考虑过'a'和/或'b'接近INT_MAX会发生什么? – Frank
你的意思是“它的错误显然(尽管所有的测试都是正面的)”?为什么它错了?哪些测试“积极”?请提供有关您遇到的具体问题的更多详细信息。 –
@Frank该问题的参数在int max下。 – Jayylmao