zoukankan      html  css  js  c++  java
  • “树人杯”暨第三届辽宁科技大学校园程序设计竞赛正赛F 最后一个是谁?(紫)

    F 最后一个是谁?(紫)

    Time Limit:1000MS  Memory Limit:65536K
    Total Submit:15 Accepted:7

    Description

    在树人学习计算机并不乏味,老师经常在课余时间跟同学玩一些有趣的游戏。这就是一个有趣的游戏:老师让N个同学围成一个圈,分别编号为1,2,3,4。。。N 并从中一个开始报数,报到K的同学,出列,然后让剩下的N-1个同学开始继续报数,从报到K的下一个同学开始报数,报到K的人出列,在从剩下的N-2个同学开始报数,直到剩下最后一个人,请问,最后一个人的编号为多少
    如:有8个同学围成一圈开始报数,报到5的人出列,从编号为3的人先出列,从编号为4的人报1。。。。直到编号为8 的人报到 5的时候,编号为8的同学出列,再从8号同学的下一个同学即编号为1的同学开始从1报数,则编号为6的人报到5,那么编号为6的同学出列,然后从编号为7的同学开始从1报数。。。。一直这样,直到最后一个同学为止。
    你的任务就是编写一个程序,给你N个同学,报到K的人出列,从编号为M的人开始报数,求出当剩下最后一个同学的编号?

    Input

    输入:N K M (2 ≤ n ≤ 10000, 1 ≤ k ≤ 10000, 1 ≤ m ≤ n)(当n , k , m 都为0的时候,程序结束)

    Output

    输出:最后一个同学的编号

    Sample Input

    8 5 3
    100 9999 98
    10000 10000 10000

    Sample Output

    1
    93
    2019

     

    #include<iostream.h>
    int main()
    {
    int n,k,m,i;
    while( cin >> n >> k >>m && (m != 0 && k != 0 && m != 0) )
    {
    int  temp = 0;
    for ( i = 2; i < n; i++ )
    {
    temp = (temp + k ) % i;
    }
    cout << (temp + m ) % n+1 <<endl;
    }
    return 0;
    }
    
  • 相关阅读:
    CFree 提示main must return int
    策略模式
    CFree 提示no newline at the end of file
    EEPROM的写入操作解析
    一些关于mic的知识
    一些关于电池的资料
    太阳能电池板日发电量简易计算方法
    ubuntu 下载编译android源代码
    SC44B0的内存地址解析
    RequireJS 2.0 学习笔记一
  • 原文地址:https://www.cnblogs.com/anderson0/p/1445365.html
Copyright © 2011-2022 走看看