• ccf_201712-02


    问题描述

    试题编号: 201712-2
    试题名称: 游戏
    时间限制: 1.0s
    内存限制: 256.0MB
    问题描述:
    问题描述
      有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。
      游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的数加1。若一个小朋友报的数为k的倍数或其末位数(即数的个位)为k,则该小朋友被淘汰出局,不再参加以后的报数。当游戏中只剩下一个小朋友时,该小朋友获胜。
      例如,当n=5, k=2时:
      1号小朋友报数1;
      2号小朋友报数2淘汰;
      3号小朋友报数3;
      4号小朋友报数4淘汰;
      5号小朋友报数5;
      1号小朋友报数6淘汰;
      3号小朋友报数7;
      5号小朋友报数8淘汰;
      3号小朋友获胜。

      给定nk,请问最后获胜的小朋友编号为多少?
    输入格式
      输入一行,包括两个整数nk,意义如题目所述。
    输出格式
      输出一行,包含一个整数,表示获胜的小朋友编号。
    样例输入
    5 2
    样例输出
    3
    样例输入
    7 3
    样例输出
    4
    数据规模和约定
      对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ k ≤ 9。

      

     1 import java.util.Scanner;
     2 
     3 public class Main {
     4     public static void main(String args[]) {
     5         Scanner scanner = new Scanner(System.in);
     6         int n = 0, k = 0;
     7         n = scanner.nextInt();
     8         k = scanner.nextInt();
     9         if (n == 1) {
    10             System.out.println(1);
    11             return;
    12         }
    13         int[] arry = new int[n];
    14         for (int i = 0; i < n; i++) {
    15             arry[i] = i + 1;
    16         }
    17         int renshu = n, j = 0, say = 1;
    18         while (renshu > 1) {
    19             if (arry[j % n] != 0) {
    20                 arry[j % n] = say;
    21                 if (arry[j % n] % k == 0 || arry[j % n] % 10 == k) {
    22                     arry[j % n] = 0;
    23                     renshu--;
    24                 }
    25                 say++;
    26             }
    27             j++;
    28         }
    29         for (int i = 0; i < n; i++) {
    30             if (arry[i] != 0) {
    31                 System.out.println(i+1);
    32             }
    33         }
    34     }
    35 }
  • 相关阅读:
    python pandas里面的一些函数及用法
    Python enumerate() 函数
    论文笔记:EPTD模型/ Efficient and Privacy-Preserving Truth Discovery in Mobile Crowd Sensing Systems
    论文笔记:Adversarial Attacks and Defenses in Deep Learning 对抗训练部分
    一周入门Linux 基础篇 虚拟机快照
    一周入门Linux 基础篇 虚拟机克隆
    一周入门Linux 基础篇 网络连接的三种方式
    一周入门Linux 基础篇 安装vm和Centos
    B站考研网课推荐
    关于我
  • 原文地址:https://www.cnblogs.com/alimjan/p/8530902.html
Copyright © 2020-2023  润新知