问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

...1号玩家从1开始报数. 如果有玩家报的数是3的倍数或者

发布网友 发布时间:2024-10-05 04:04

我来回答

3个回答

热心网友 时间:2024-10-15 08:41

此题可用数学方法求解。


设有n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数  (用数学方法解的时候需要注意应当从0开始编号,因为取余会取到0解。)


实质是一个递推,n个人中最终留下来的序号与n-1个人中留下来的人的序号有一个递推关系式。


假设除去第k个人,则


0, 1, 2, 3, ..., k-2, k-1, k, ..., n-1          // 原始序列 (1)


0, 1, 2, 3, ..., k-2,      , k, ..., n-1        // 除去第k人,即除去序号为k-1的人   (2)


k, k+1, ..., n-1,    0,    1,        ..., k-2  // 以序号k为起始,从k开始报0  (3)


0, 1,     ..., n-k-1, n-k, n-k+1, ..., n-2   // 作编号转换,此时队列为n-1人  (4)



换后就完完全全成为了(n-1)个人报数的子问题,注意(1)式和(4)式,是同一个问题,不同的仅仅是人数。比较(4)和(3),不难看
出,0+k=k, 1+k=k+1, ... ,(3)式中'0'后面的数字,((n-3)+k)%n=k-3,((n-2)+k)%n=k-2,
对于(3)式中'0'前面的数字,由于比n小,也可看作(0+k)%n=k,  (1+k)%n=k+1,  故可得出规律:


设(3)中某一数为x' , (4)中对应的数为x,则有:x'=(x+k)%n.


设x为最终留下的人序号时,队列只剩下1人时,显然x=0; 此时可向前回溯至2人时x对应的序号,3人时x对应的序号……直至n人时x的序号,即为所求。

#include <stdio.h>
const int M = 3;
int main()
{
    int n, s = 0;
    scanf("%d", &n);
    for (int i = 2; i <= n; ++i)
        s = (s+M)%i;
    printf("%d\n", s+1);
    return 0;
}

热心网友 时间:2024-10-15 08:40

此题可用数学方法求解。



设有n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数  (用数学方法解的时候需要注意应当从0开始编号,因为取余会取到0解。)



实质是一个递推,n个人中最终留下来的序号与n-1个人中留下来的人的序号有一个递推关系式。

找规律的方法:

1、标出序列号:找规律的题目,通常按照一定的顺序给出一系列量,要求我们根据这些已知的量找出一般规律。找出的规律,通常包序列号。所以,把变量和序列号放在一起加以比较,就比较容易发现其中的奥秘。

2、斐波那契数列法:每个数都是前两个数的和。

3、等差数列法:每两个数之间的差都相等。

4、跳格子法:可以间隔着看,看隔着的数之间有什么关系,如14,1,12,3,10,5,第奇数项成等差数列,第偶数项也成等差数列,于是接下来应该填8。

热心网友 时间:2024-10-15 08:41

#include <stdio.h>
//返回数组中剩下的最后一个元素的下标(从0开始)
int fn(int *p,int n)
{
if(n==1)
return 0;

    int i=0,j=0,k=n,l;
    while(1)
{
if(p[i] != 0)
{
if(++j % 3 != 0)
l = i;
else
{
p[i] = 0;
if(--k == 1)
break;
}
}

if(++i >= n)
i = 0;
}

return l;
}

void main()
{
    int x[10];
    for(int i=0;i<10;++i)
        x[i] = i+1;
    printf("%d",fn(x,10)+1);    //因为返回的是数组下标,从0开始,这里加1再打印出来。
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
重磅|8月1日起 报关单的填法将重大改变 进出口权需要报关员么 宝宝被莫名的虫子咬了又红又肿又痒怎么? 北京疫情个为数是什么意思? 在做刀伤的手术时没有接上神经是医院的过错吗? 手术室收费项目有哪些 手术室的秘密:一台10万的手术,主刀医生拿多少?答案颠覆你的认知 阿里巴巴中修改产品信息只修改一小部分行吗?谢谢 可否给我一个阿里巴巴的序列号~谢谢了 阿里巴巴店铺产品搜索框代码谁有呢,给我发一下谢谢了! ...Flop"的游戏应用程序.它从1计数到100.遇到3的倍数就替换为单词"Flip... 合同条款如何约定仲裁,如何对合同条款进行约定仲裁? 艾弗森的雅号“答案”的由来是什么? bonepile warehouse 什么意思? 艾弗森的外号为什么是“答案”? 艾弗森的绰号为什么叫“答案”? CPU性能英特尔 Celeron(R) G540 @ 2.50GHz 显卡Intel(R) HD Graphics... 福瑞迪后视镜能光换玻璃吗 大众朗逸后视镜玻璃可以单独换吗 苹果手机里面的搜狗输入法3.6.1更新失败 我的配置玩天涯明月刀可以吗 越狱后手机装了搜狗输入法,不能用 5.0.1版本 去键盘里找了,没找到_百... 比亚迪m6的左后视镜玻璃碎了,可以单换镜片吗 搜狗手机输入法哪版稳定,刚装的1.5版,导致*不能用... 最近想买一台台式笔记本电脑,但自己不懂组装,不懂配置。什么样的配置... 下载搜狗手机拼音输入法后,仍无法在手机互联网输入汉字. 联想C340产品钥匙在哪里?? 手机搜狗输入法3.2.1版本怎么关闭按键音 胃老是疼是什么病造成的 升级后的搜狗手机输入法的隔音符怎么变成1了 ...且是3的倍数的五位数中,最小-|||-的一个数是? maybe 和may be 有什么区别 maybe,may 和possible用法有何不同 ...1. 2,3,4三个数字组成的三位数一定是三的倍数。 2 ...从4个数字中选3个按要求组成三位数。 1.是3的倍数。 2.同时是_百度... 听说爱奇艺和PPS合并了,搜索出来的PPS叫爱奇艺PPS,那为何我装爱奇艺客户... 斯巴达教育教育方式 形容学习好用什么词语 串通损害商业声誉罪立案标准有什么 王者荣耀拖尾特效名列前茅怎么获取_拖尾特效名列前茅相关介绍 名列前茅的近义词和反义词是什么_名列前茅是什么意思? 西电的南校区在2012年是否已开发完毕 未签合同员工急辞扣钱违法吗 车用防雨剂真的能防雨汽车防雨剂可以用什么代替 防雨剂对玻璃的害处 车用防雨剂真的能防雨 汽车防雨剂可以用什么代替 车玻璃防雨剂管用吗? IEEE 802.11b802.11b的典型解决方案 炫舞怎么可以跳好 ...市南海区桂城街叠南村圣堂618号鸿大广场要怎么去?搭地铁的话。_百度...