寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

C言語によるゲームの勝者の判定

C言語によるゲームの勝者の判定です。
石の数と人数から、何人目が勝つか判定するプログラムです。

・問題
 K 個の石から、P 人が順番に1つずつ石を取るゲームがあります。
 P 人目が石を取った時点で、まだ石が残っていれば、また1人目から順番に1つずつ石を取っていきます。
 このゲームでは、最後の石を取った人が勝ちとなります。
 K とP が与えられたとき、何人目が勝つか判定するプログラムを作成してください。

・入力される値
 入力は以下の形式で与えられる。
   n
   K1 P1
   K2 P2
   :
   KN PN
 1行目にはゲームを行う回数 N (1 ≤ N ≤ 100) が与えられる。
 続く N 行に、i 回目のゲームにおける石の個数 Ki (2 ≤ Ki ≤ 1000) と、ゲームに参加する人数 Pi (2 ≤ Pi ≤ 1000) が与えられる。

・期待する出力
 それぞれのゲームについて、何人目が勝つかを1行に出力する。

僕が作成、提出したコードは、以下のとおりです。

/*
 Problem Set from Volume2 0297 : The Last One is the Best
 http://judge.u-aizu.ac.jp/
 C言語によるゲームの勝者の判定
 https://neguse-atama.hatenablog.com
*/
#include<stdio.h>
int main(void){
    int N,K,P;
    scanf("%d",&N);
    while(N--){
        scanf("%d %d",&K,&P);
        K=K%P;
        if(K==0){
            K=P;
        }
        printf("%d\n",K);
    }
    return 0;
}

設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/
Problem Set from Volume2 0297 : The Last One is the Best