帰納式で
gcd(b,a%b) (a%b=0 以外)
gcd(a,b)={
b (a%b=0)
ので
48 と 40の
最大公約数=8
というのを求めるC言語をおしえてください
再起させるのが一番手っ取り早いかと思います。
mainなどから
gcd(48, 40)
などと呼べばこの関数で求まります。
void gcd(int a, int b)
{
int x;
x = a % b;
if(x != 0) gcd(b, x);
else printf(%d, b);
}
あまりよいプログラムではありませんが、参考になればと思います。
他の関数でこの値が必要ならば、xをグローバル変数にするか、
関数gcdをint型にし、少し変えればよいと思います。
ありがとうございます やってみます
48 40 をそれぞれ入力するときには#include<stdio.h>
void gcd(int a, int b)
{
int x;
x = a % b;
if(x != 0)
gcd(b, x);
else printf(%d, b);
}
void main()
{ int x,a,b;
printf(整数データa b を入力してください>);
scanf(%d %d , &a, &b);
printf(%d と %d の最大公約数= , a, b, x);
}
として
実行して 40 48
と置いたのですが、
これでは動かなかったのですが
なにがいけなかったのでしょうか?
main() で gcd() を呼びましょう。