public static int divisor(int m, int n) {
if (m == 0 || n == 0) {
return m+n;
} else {
return divisor(n, m%n);
}
}
amazon.interviewstreet.com で、一部の入力に対して間違った回答が返されます (テストケースに使用する入力が明らかにされていないため、どれかわかりません)。
また、この実装がスタックオーバーフローを提供し続ける理由(これも、どの入力についてはわかりません)
public static int divisor(int m, int n) {
if(m == 0 || n == 0) {
return m+n;
} else if (m > n) {
return divisor(n, m%n);
} else {
return divisor(m, n%m);
}
}
何が足りないのか教えてください。プログラミング初心者でまだまだ初心者です。