最大公倍数を求める問題 – プログラミング – Home

最大公倍数を求める問題
 
通知
すべてクリア

最大公倍数を求める問題


けろん
 けろん
(@けろん)
ゲスト
結合: 24年前
投稿: 1
Topic starter  

帰納式で

gcd(b,a%b) (a%b=0 以外)
gcd(a,b)={
      b (a%b=0)

ので
48 と 40の
最大公約数=8

というのを求めるC言語をおしえてください


引用解決済
トピックタグ
koichi
 koichi
(@koichi)
ゲスト
結合: 24年前
投稿: 1
 

再起させるのが一番手っ取り早いかと思います。
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型にし、少し変えればよいと思います。


返信引用
けろん
 けろん
(@けろん)
ゲスト
結合: 24年前
投稿: 2
 

ありがとうございます やってみます


返信引用
けろん
 けろん
(@けろん)
ゲスト
結合: 24年前
投稿: 2
 

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
と置いたのですが、
これでは動かなかったのですが
なにがいけなかったのでしょうか?


返信引用
Mami
 Mami
(@Mami)
ゲスト
結合: 24年前
投稿: 2
 

main() で gcd() を呼びましょう。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました