結果
| 問題 |
No.415 ぴょん
|
| ユーザー |
|
| 提出日時 | 2017-06-20 17:38:52 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 55 ms / 1,000 ms |
| コード長 | 2,106 bytes |
| コンパイル時間 | 3,464 ms |
| コンパイル使用メモリ | 77,796 KB |
| 実行使用メモリ | 50,600 KB |
| 最終ジャッジ日時 | 2024-11-18 14:54:00 |
| 合計ジャッジ時間 | 5,820 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 27 |
ソースコード
package test8;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* No.415 ぴょん
* https://yukicoder.me/problems/no/415
*/
public class Question_23_0619 {
final static int PLACE_MIN = 1; //足場
final static int INTERVAL_MIN = 1; //1ぴょん幅
final static int PLACE_MAX = (int)Math.pow(10, 9) * 2;
static int INTERVAL_MAX;
public static void main(String[] args) {
InputStreamReader re = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(re);
try {
String[] inputStrArray = br.readLine().split(" ");
int place = Integer.parseInt(inputStrArray[0]);
int interval = Integer.parseInt(inputStrArray[1]);
INTERVAL_MAX = place;
//有効値判定
if (NumJudg(place, PLACE_MIN, PLACE_MAX) && NumJudg(interval, INTERVAL_MIN, INTERVAL_MAX)) {
//placeを最大公約数で割り1を引く
System.out.println(place / returnGcd(place, interval) - 1);
} else {
System.out.println("入力値が有効範囲外です");
}
} catch (NumberFormatException e){
System.out.println("数字を入力して下さい");
} catch (IOException e) {
System.out.println("エラーが発生しました");
} finally {
try {
re.close();
br.close();
} catch (IOException e) {
System.out.println("InputStreamReader、BufferedReaderクローズ中にエラーが発生しました");
}
}
}
/**
* 有効値判定
* @param input 判定するもの
* @param max 最大値
* @param min 最小値
* @return 範囲内ならtrue,範囲外ならfalseを返す
*/
private static boolean NumJudg(int input, int min, int max) {
Boolean result = false;
if (min <= input && input <= max) {
result = true;
}
return result;
}
/**
* 最大公約数を返す(ユークリッドの互除法)
* @param place
* @param interval
* @return
*/
private static int returnGcd(int place, int interval) {
while ((place % interval) != 0) {
int remainder = place % interval; //余り
place = interval;
interval = remainder;
}
return interval;
}
}