No.3ベストアンサー
- 回答日時:
手元にあるC言語によるアルゴリズム辞典には次のように書かれていました。
Euclidの互除法でx、yの最大公約数を求める。
int gcd(int x, int y) {
if (y == 0) return x;
elsereturn gcd(y, x % y);
}
この非再帰版は次のようになる。
int gcd(int x, int y) {
int t;
while (y != 0) {
t = x % y;x = y;y = t;
}
return x;
}
だそうです。
本の通りに書いただけなので正しいかは定かではないです。
No.5
- 回答日時:
多分「オリジナル」という意味で正しい Euclid の互除法:
x, y に対し:
x が 0 なら y
y が 0 なら x
x ≧ y なら x-y と y に対して再帰的に求める
そうでなければ x と y-x に対して再帰的に求める
No.4
- 回答日時:
最大公約数を求めるプログラム
http://okwave.jp/qa4243628.html
シーザー暗号の解読プログラム
http://okwave.jp/qa4243641.html
どちらも課題の丸投げのようです。
どこまで考えてどこが分からないのかを書いてください。
No.2
- 回答日時:
ちょっと記述方法など忘れたので大体の流れだけになってしまいますが、
一番単純なものでは小さい方をA、大きいほうをBとして、2からAまでの数で両方を順番に割っていき、余りが0になる度に別の変数に除数を代入という感じになると思います。
No.1
- 回答日時:
class GCDTest {
// ユークリッドの互除法により最大公約数を計算するメソッド gcd の定義
// int型の引数 n, m をとり, int型の値を返す
static int gcd(int n,int m){
// デバッグ(プログラムのミスを直す)のための出力
System.out.println("gcd("+n+","+m+")が呼ばれました");
// 剰余を求めて rに入れる
int r=n%m;
// nがmの倍数になっているなら最大公約数は m自身になる.
if(r==0) return m;
// n,mの最大公約数は m,rの最大公約数と等しい
else return gcd(m,r);
}
public static void main(String[] args){
// コマンドラインから
// java GCDTest arg0 arg1
// のようにして起動した時, args[0] -> arg0, args[1] -> arg1 となる.
// 文字列から int 型の整数値に変換するのは Integer.parseInt を使う
int i0=Integer.parseInt(args[0]);
int i1=Integer.parseInt(args[1]);
System.out.println(i0+"と"+i1+"の最大公約数は"+gcd(i0,i1)+"です");
}
}
JAVAでよいでしょうか?動作未確認です。課題なので答えは書きません。
http://itpro.nikkeibp.co.jp/members/ITPro/ITBASI …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#の問題で2つの整数a,bの最大公約数(GCD)を求めるユークリッドの互除法は,aをbで割った余り 2 2022/06/26 16:52
- C言語・C++・C# C言語 3 2022/10/04 15:07
- 数学 中一数学の【最大公約数と最小公倍数】の問題です。 1問だけでも教えていただけると嬉しいです。 (1) 4 2022/08/01 10:19
- 数学 3つの整数, 82703, 368483, 1722041 の最大公約数の求め方は? 数学が苦手なの 1 2022/05/23 07:16
- 中学校受験 中学受験の問題です。解き方を教えて下さい。 2つの整数があり、その和は90、最大公約数は9です。この 3 2023/05/29 15:09
- 大学受験 整数問題 Nを正の整数とする。 N+18がN+2の倍数となるようなNの値の個数を求めたい。 解説に、 1 2022/08/13 12:25
- 数学 最小公倍数と最大公約数の求め方で画像のような計算法があったのですが、理解できません。 なぜ2つ数24 4 2022/04/10 13:37
- 国家公務員・地方公務員 公務員試験の数的処理で苦戦しています。 1 2023/01/30 08:56
- 数学 √nが有理数ならばnが整数 証明 なぜ √nが有理数ならばnが整数の証明の解答です。わからない部分が 2 2022/08/04 09:41
- 数学 公約数・公倍数の性質 4 2022/10/13 08:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2の補数を計算するプログラム
-
C++で表を作成したいのです ...
-
ヌメロンのプログラム
-
c言語プログラミングについて f...
-
迷路を脱出する経路探索プログ...
-
再起呼び出しの回数をカウント...
-
OpenCVによる4値化について
-
PIC16F88マイコンのC言語プログ...
-
C++ bmp 透過処理
-
C言語の問題
-
カードシャッフルのブログラム...
-
乱数で交互に偶数、奇数が、、、。
-
C言語で%を使わない余りの出し方
-
関数とビット列
-
異なるn個の整数からr個の整数...
-
放射状ブラー C言語で書いたの...
-
画像の拡大・縮小
-
C言語 格子点が多角形の中にあ...
-
16bitで乱数を生成する方法
-
プログラミングに関して
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報