首页 > 其他分享 >C语言:约瑟夫环

C语言:约瑟夫环

时间:2022-11-18 12:33:47浏览次数:50  
标签:10 出圈 int 约瑟夫 C语言 报数 flg

题目

n个人围成一圈,从第一个人开始报数,数到 m的人出列,再由下一个人重新从1开始报数,数到 m的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。
 例如:
  输入:10 3
  输出:3 6 9 2 7 1 8 5 10 4


代码


#include<stdio.h>

int main(){
    int n,m,t;
    int i=0,flg=0;

    scanf("%d %d",&n,&m);

    int a[n-1];

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

    t = n;
    i = 0;
    while(t>0){

        if (a[flg] == 1) {
            i += 1;
        }

        if (i == m) {
            a[flg] = 0;
            printf("%d ", flg+1);
            i = 0;
            t -= 1;
        }

        flg = (flg + 1) % n;
    }
    return 0;
}

标签:10,出圈,int,约瑟夫,C语言,报数,flg
From: https://www.cnblogs.com/Shin404/p/16902810.html

相关文章

  • C语言:IPv6地址压缩
    题目IPv6二进位制下为128位长度,以16位为一组,每组以冒号“:”隔开,可以分为8组,每组以4位十六进制方式表示。例如:2001:0db8:0000:0000:0123:4567:89ab:cdef是一个......
  • C语言:大数减法
    题目输入两个正整数(20位以上),计算两个数的差 例如:  输入:5626255555855853666554212125121252222521  输出:2050430437306314144代码#include<stdio.h>#inclu......
  • C语言:最小子数组和
    题目给你一个整数数组,请你找出一个具有最小和的连续子数组(子数组最少包含一个元素),返回其最小和。子数组是数组中的一个连续部分。 例如:  输入:-21-34-1-21-......
  • C语言:蛇形方阵
    题目给出一个不大于9的正整数n,输出n×n的蛇形方阵。从右上角填上1开始,逆时针方向依次填入数字,如同样例所示。注意每个数字都右对齐,中间用空格隔开。 例如:  ......
  • C语言:连续子串
    题目输入一个字符串,输出其所有的子串(不包含本身,输出每个子串间有空格)。子串:对于一个字符串变量,例如"adereegfbw",它的子串就是像"ader"这样可以从中找到的连续的字符......
  • C语言:规则排序
    题目输入正整数n,再输入n个正整数,先将其中的奇数从小到大排序,再将偶数从大到小排序。 例如:  输入:828522391125  输出:35911252282代码#in......
  • C语言:亲密数对
    题目输入N,N在2至3000之间,求2至N中的亲密数对。所谓亲密数对,就是A的因子和等于B,B的因子和等于A,且A≠B。如48和75是亲密数对。48的因子和为2+3+4+6......
  • C语言:学号输出
    题目用输出你的学号对应的八位数(每位数大小为55,每个数之间距离三个空格) 例如  输入12345678 输出: 代码#include<stdio.h>intmain(){charinp......
  • C语言:一元二次方程求解
    题目已知一元二次方程......
  • C语言:时间计算
    题目给出当前时间(XX时XX分XX秒),计算经过n秒后的时间,输出格式(XX时XX分XX秒,注意0的补位),超过24时则显示第二天的时间。 例如:  输入:09时11分22秒125秒  输出:09时13......