c
1#include <stdio.h> 2 3int gcd(int num1, int num2) { 4 int x; 5 x = num1 % num2; 6 7 if (num2 == 0) 8 return (num1); 9 else 10 return (gcd(num2, x)); 11} 12 13int main(void) { 14 int num1, num2; 15 16 printf("print number "); 17 scanf("%d", &num1); 18 printf("print number "); 19 scanf("%d", &num2); 20 21 printf("%d\n",gcd(num1, num2)); 22 return 0; 23} 24
このコードはユークリッドの互除法の関数なのですが、上のコードでは結果が表示されないのに、下のコードでは結果が表示されます。なぜなのでしょうか?
私は最初に上のコードで実装したのですが、結果が表示されず、下のようにしたところ結果が表示されました。
同じような処理だと思ったのですが、何がいけなかったのでしょうか?
c
1int gcd(int num1, int num2) { 2 3 if (num2 == 0) 4 return (num1); 5 else 6 return (gcd(num2, num1 % num2)); 7} 8 9int main(void) { 10 int num1, num2; 11 12 printf("print number "); 13 scanf("%d", &num1); 14 printf("print number "); 15 scanf("%d", &num2); 16 17 printf("%d\n",gcd(num1, num2)); 18 return 0; 19}
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/24 18:20