| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2614 人关注过本帖
标题:士兵队列训练问题
只看楼主 加入收藏
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
士兵队列训练问题
某部队进行新兵队列训练,将新兵从 11 开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数…以后从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。

输入格式

一个整数 nn 表示新兵人数

输出格式

三个数字,表示剩下的新兵编号

数据范围

3 leq n leq 50003≤n≤5000

例子
Input
40
复制一下
Output
1 19 37
复制一下
例子
Input
20
复制一下
Output
1 7 19
复制一下
搜索更多相关主题的帖子: 队列 复制 报数 表示 
2020-01-28 12:00
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:569
专家分:3707
注 册:2019-7-29
收藏
得分:20 
程序代码:
#include<stdio.h>
#define MAX 5000

int main()
{
    int n,i,j=0,temp=3;
    int array[MAX]={0};
    printf("Input:");
    scanf("%d",&n);

    for(i=1;i<=n;i++)
        array[i]=i;

    do
    {
        j=1;
        if(temp%3==0)
            temp--;
        else
            temp++;

        for(i=1;i<=n;i++)
        {
            if(i%temp!=0)
                array[j++]=array[i];
        }
        n=j-1;

    }while(j>4);

    printf("Output:");
    for(i=1;i<j;i++)
        printf("%d ",array[i]);

    return 0;
}

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2020-01-29 14:47
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
分给你了,可是老师要求的是用queue解

2020-02-06 15:14
快速回复:士兵队列训练问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016381 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved