[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
プログラミングの問題やプログラミング関連知識、ソフトウェアのテストについてのブログです
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
/**
* gcd
* 引数で指定された2つの数の最大公約数を返します
* 引数は、自然数を想定しています(0は、含めません)
* 引数が、自然数ではない場合、-1です
*/
public static int gcd(int arg1, int arg2) {
int ret = -1 ;
//引数のチェック
if(arg1 < 1 || arg2 < 1 ){
return -1 ;
}
// 計算用の変数
// value1 > value2 となるように利用
int value1 = Math.max(arg1, arg2) ;
int value2 = Math.min(arg1, arg2) ;
//割り切れる場合は、最大公約数が発見された
//割り切れない場合は、小さい方を再度余りでわる
// これを繰り返す
while(ret== -1){
int surplus =value1%value2;
if( surplus == 0 ){
//割り切れた
ret = value2;
}else{
//割り切れない
value1=value2 ;
value2=surplus ;
}
}
return ret ;
}