Misa031
@Misa031

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

java 繰り返し処理 最大公約数

Java初心者です。
今研修を受けているところなのですが、その中で最大公約数を表示しなさいという課題がありました。
調べて見た所、このようなコードを発見し、実際に自分でもコードを打って試して、実行はできたのですが、コードの意味がまだ理解がしっかりできていないので、ご教示いただけると幸いです。

入力する数字は、91と141です。
①while以下のコードはユークリッドの互除法を表すコードで、rの数字が0よりも大きい場合、このユークリッドの互除法が繰り返されるという事で間違いないでしょうか?
②System.out~の文章の中で、GCO = %d¥n というのがあるのですが、%d¥nというのは何なのでしょうか?

長文になってしまい申し訳ございませんが、よろしくお願いいたします。

最大公約数のコード.png

0

1Answer

①while以下のコードはユークリッドの互除法を表すコードで、rの数字が0よりも大きい場合、このユークリッドの互除法が繰り返されるという事で間違いないでしょうか?

はい。そうです。

②System.out~の文章の中で、GCO = %d¥n というのがあるのですが、%d¥nというのは何なのでしょうか?

%d で int型の値を10進数(decimal)で表示する、\n で改行(newline)する、という意味です。

while文を使わずに愚直に繰り返すと以下のような計算をしています。

JDKをインストールすると対話型Javaインタプリタjshellコマンドもインストールされているかと思います。

$ jshell
Mar 14, 2023 6:58:16 PM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
|  Welcome to JShell -- Version 17.0.6
|  For an introduction type: /help intro

jshell> int a = 91
a ==> 91

jshell> int b = 141
b ==> 141

jshell> int r = a % b
r ==> 91

jshell> a = b
a ==> 141

jshell> b = r
b ==> 91

jshell> r = a % b
r ==> 50

jshell> a = b
a ==> 91

jshell> b = r
b ==> 50

jshell> r = a % b
r ==> 41

jshell> a = b
a ==> 50

jshell> b = r
b ==> 41

jshell> r = a % b
r ==> 9

jshell> a = b
a ==> 41

jshell> b = r
b ==> 9

jshell> r = a % b
r ==> 5

jshell> a = b
a ==> 9

jshell> b = r
b ==> 5

jshell> r = a % b
r ==> 4

jshell> a = b
a ==> 5

jshell> b = r
b ==> 4

jshell> r = a % b
r ==> 1

jshell> a = b
a ==> 4

jshell> b = r
b ==> 1

jshell> r = a % b
r ==> 0

jshell> System.out.printf("GCD = %d\n", b)
GCD = 1
$25 ==> java.io.PrintStream@79fc0f2f

jshell>
1Like

Comments

  1. @Misa031

    Questioner

    返信いただきありがとうございます。
    謎の記号みたいなものもしっかり意味があったのですね。
    ありがとうございます。

Your answer might help someone💌