2
1
paiza×Qiita記事投稿キャンペーン「プログラミング問題をやってみて書いたコードを投稿しよう!」

Paiza×Qiitaキャンペーン Javaで解説してみた【C 宝くじ 編】

Last updated at Posted at 2024-08-21

問題へのリンク

解答コード

詳細

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		final int N = scanner.nextInt();
		final int M = scanner.nextInt();
		scanner.close();

		int page = (M - 1) / N;
		int index = (M - 1) - page * N;

		if ((page & 1) == 0) {
			page++;
		} else {
			page--;
		}
		
		System.out.println((N * page) + (N - index));
	}
}


解説

詳細

コードの記述能力ではなく、どれだけ問題を整理できるかです。

まず、Mが何ページ目の何番目にあるかを考えます。

ページ
・先頭のページを1とすると M から N で割った時、端数切り上げにする必要があります
⇒ (M - 1) / N + 1

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1