程序设计大赛-留下的学生

2024-01-10 14:32

本文主要是介绍程序设计大赛-留下的学生,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 留下的学生:

       军训时有N个学生站成一行,从右到做,从1到N依次编号,他们还得到一个整数M.然后这些学生西欧那个右手边的学生开始报数。报的数为M的倍数的学生留在队列里,其他的学生需要离开队列。他们重复进行这项操作直到队列中的人数小于M.

输入格式:

输入包含几组测试数据。每组测试数据只占单独的一行,包含两个整数n和m(3<=n<=10^9,2<=m<=n).当n=0并且m=0的时候结束输入。

输出格式:

对于每组测试数据,输出两列。每一行包含一个整数X,表示最终留下的学生的数目。第二行包含X个整数,表示最终留下的学生的编号,各个整数之间用1个空格隔开。如:

输入:

10 3

8 3

0 0

输出:

1

9

2

3 6

我的程序:

#include<iostream.h>
#include<stdio.h>
//求m的n次方
long power(int m,int n)
{
    long sum=1;
    for(int i=0;i<n;i++)
        sum*=m;
    return sum;
}
//清空文件
void cleanfile()
{
    FILE *pt;
    if(NULL==(pt=fopen("output.txt","w")))
    {
        cout<<"can't open the file!";
    }
    else
    {
        fclose(pt);
    }
   
}
void main()
{
    long n,m,k,num;
    FILE *pt1,*pt2;
    int a[100000],i;
    cleanfile();
    if(NULL==(pt1=fopen("input.txt","r")))
    {
        cout<<"can't open the file!";
    }
    else
    {
        fscanf(pt1,"%d",&n);
        fscanf(pt1,"%d",&m);
       
        while(!(n==0 && m==0))
        {
            k=n;
            num=0;
            while(k>=m)
            {
                k=k/m;
                num++;
            }
           
            for(i=0;i<k;i++)
            {
                a[i]=power(m,num)*(i+1);
            }
           
            fscanf(pt1,"%d",&n);
            fscanf(pt1,"%d",&m);
            if(NULL==(pt2=fopen("output.txt","a")))
            {
                cout<<"can't open the file!";
            }
            else
            {
                fprintf(pt2,"%d/n",k);
                if(n==0 && m==0)
                {
                    for(i=0;i<k-1;i++)
                    {
                        fprintf(pt2,"%d ",a[i]);
                    }
                    fprintf(pt2,"%d",a[k-1]);
                }
                else
                {
                    for(i=0;i<k-1;i++)
                    {
                        fprintf(pt2,"%d ",a[i]);
                    }
                    fprintf(pt2,"%d/n",a[k-1]);
                }
                fclose(pt2);
            }
        }
        fclose(pt1);
    }
}

输入:

10 3
100 6
8 3
100000000 9
0 0

输出:

1
9
2
36 72
2
3 6
2
43046721 86093442

 

这篇关于程序设计大赛-留下的学生的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/591119

相关文章

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

C语言程序设计(选择结构程序设计)

一、关系运算符和关系表达式 1.1关系运算符及其优先次序 ①<(小于) ②<=(小于或等于) ③>(大于) ④>=(大于或等于 ) ⑤==(等于) ⑥!=(不等于) 说明: 前4个优先级相同,后2个优先级相同,关系运算符的优先级低于算术运算符,关系运算符的优先级高于赋值运算符 1.2关系表达式 用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符

华为OD机试真题-学生方阵-2024年OD统一考试(E卷)

题目描述 学校组织活动,将学生排成一个矩形方阵。 请在矩形方阵中找到最大的位置相连的男生数量。这个相连位置在一个直线上,方向可以是水平的,垂直的,成对角线的或者呈反对角线的。 注:学生个数不会超过10000 输入描述 输入的第一行为矩阵的行数和列数, 接下来的 n行为矩阵元素,元素间用""分隔。 输出描述 输出一个整数,表示矩阵中最长的位

家庭和学生用户笔记本电脑配置方案

2.6.1  家庭和学生用户笔记本电脑配置方案   2.6.1  家庭和学生用户笔记本电脑配置方案   普通家庭用户、学生用户主要用于上网、娱乐、学习等,这类用户要求笔记本电脑的各方面 功能比较均衡。在选购此类笔记本电脑时,主要考虑外观设计方面要比较时尚,而且性能上也要 够强,一些大型复杂的软件以及目前的主流游戏都要能够流畅地运行才行。   对于CPU方面,可以考虑目前主流的第二

智能工厂程序设计 之1 智能工厂都本俱的方面(Facet,Aspect和Respect)即智能依赖的基底Substrate 之1

Q1、昨天分别给出了三个智能工厂的 “面face”(里面inter-face,外面outer-face和表面surface) 以及每个“面face” 各自使用的“方”(StringProcessor,CaseFilter和ModeAdapter)  。今天我们将继续说说三个智能工厂的“方面” 。在展开之前先看一下三个单词:面向facing,取向oriented,朝向toword。理解这三个词 和

C语言程序设计 笔记代码梳理 重制版

前言 本篇以笔记为主的C语言详解,全篇一共十章内容,会持续更新基础内容,争取做到更详细。多一句没有,少一句不行!  形而上学者谓之道,形而下学者谓之器 形而上学者谓之道,形而下学者谓之器 第1章 C语言的流程 1.C程序经历的六个阶段 编辑(Edit)预处理(Preprocess)编译(Compile)汇编(Assemble)链接(Link)执行(Execute)  2.

ACM东北地区程序设计大赛

不得不说随着参赛级别的提高,题目真的是越来越难啊,不过队长真是给力啊,在我们三个共同努力之下拿下了地区赛三等奖,哈哈我们可是大一唯一一只获奖队,终于在这次比赛打败了田大神。。。大神是失手了,俺和他差距还是挺大的。。。队友陈彤马上要去服兵役了,他说这是我们送给他最好的离别礼物,希望那家伙在部队好好干,以后谁干揍我!!!东北地区赛结束后,今年已经估计没机会参加亚洲区比赛了,赶紧补高数和线数啊!!别挂了

pta-2024年秋面向对象程序设计实验一-java

文章申明:作者也为初学者,解答仅供参考,不一定是最优解; 一:7-1 sdut-sel-2 汽车超速罚款(选择结构) 答案: import java.util.Scanner;         public class Main { public static void main(String[] arg){         Scanner sc=new Scanner(System

C语言程序设计(算法的概念及其表示)

一、算法的概念 一个程序应包括两个方面的内容: 对数据的描述:数据结构 对操作的描述:算法 著名计算机科学家沃思提出一个公式: 数据结构 +算法 =程序 完整的程序设计应该是: 数据结构+算法+程序设计方法+语言工具 广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。 对同一个问题,可有不同的解题方法和步骤。为了有效地进行解题,不仅需要保证算法正确,还要考虑算

全国机器人大赛 Robocon 常州工学院团队首战国三

全国机器人大赛 Robocon 常州工学院团队首战国三 通宵7天7夜,常州工学院RC团队,首次闯入全国机器人大赛国赛,并成功得分! 不同于老牌强队,常州工学院(下面用"常工"代替)的这只队伍,大多数成员由大一组成,核心岗位由一些大二各个专业基础最为扎实的学生担任。 7月7日,19:26分。卡在报道的最后10分钟,由在团队项管和电控成功领队签到,光电Robot成为最近几年唯一一只冲入Roboc