zoukankan      html  css  js  c++  java
  • 围圈报数

    题目标题:

       围圈报数(谌海军)

    题目描述:

    有n(n<=100)围成一圈,顺序排号(从1排到n)。 从第一个人开始报数(从1报到m(m<=9)),凡报到m的人退出圈子, 问最后留下的是原来第几号的那位?

    解题思路:

    1、定义一个长度为100数组a,初始化为0;

    2、接收键盘输入值n,m,数组a的前n-1个元素赋值为1~n;

    3、建立两层嵌套循环,外循环至退出人数为n-1为止, 内循环中从0循环至n,将a数组中非0的数据逢m置零,同时记录退出人数;

    4、循环全部结束后输出最后留下的一个a数组的非零元素的值。  

    输入描述:

    输入为两个正整数,第一个<=100,第二个<=9;  

    输出描述:

    k 输出为一个正整数;   样式输入: 100 3   样式输出: 91

    #include <stdio.h>
    void main ()
    {
        int a[1000]={0},n,m,i=0,j=1,k;
        scanf("%d %d",&n,&m);
        for(k=0;k<n-1;)
        {
            if(a[i]!=m+1)/*报数*/
                a[i]=j;
            else 
            {
            for(;a[i]==m+1;)/*for语句是关键,可替为do while/while语句*/
                {
                if(i==n-1)
                i=0;
                else
                i++;
                }
            a[i]=j;
            }       /*报数*/
            if (j==m)
            {
                j=1;
                a[i]=m+1;
                k++;
            }
            else 
                j++;
            if(i==n-1)
                i=0;
            else
                i++;
        }
        /*输出最后留下的人的序号*/
        for(i=0;i<n;i++)
            if(a[i]!=m+1)
                printf("%d",i+1);
            
    }
  • 相关阅读:
    Win10 VirtualBox 安装 OpenWrt/LEDE
    在华为云、腾讯云服务器中部署 Hadoop 集群
    记一次部署Hadoop后遭受kthreaddi挖矿病毒
    四种基本编程命名法
    词云图制作
    在Ubuntu18.04lts下安装NS2(含nam)
    二叉树的建立与遍历
    国内pip镜像
    java高斯消元模板
    图的3种储存方式
  • 原文地址:https://www.cnblogs.com/achst/p/3647118.html
Copyright © 2011-2022 走看看