我有在Python工作的算法,我想轉換爲C++:如何轉換這個Python代碼C++
def gcd(a, b):
if (a % b == 0):
return b
else:
return gcd(b, a % b)
def solution(N, M):
lcm = N * M/gcd(N, M)
return lcm/M
我在與大的輸入值的問題,M和N多導致整數溢出,並使用long
來存儲它的值似乎沒有幫助,除非我做錯了什麼。
這裏是我當前的代碼:
int gcd(int a, int b)
{
if (a % b == 0)
return b;
else
return gcd(b, a % b);
}
int solution(int N, int M) {
// Calculate greatest common divisor
int g = gcd(N, M);
// Calculate the least common multiple
long m = N * M;
int lcm = m/g;
return lcm/M;
}
你給'solution'提供了什麼值? –
N和M都在範圍內(1,1,000,000,000)。 – jaho
那麼,一個快速的解決方案就是使用'long long'。這並不意味着更大的價值是安全的,但。 – chris