zoukankan      html  css  js  c++  java
  • 约瑟夫环

     1 //挺有意思的小游戏,可以在N,M这里改动数据。
     2 #include<stdio.h>
     3 #include<stdlib.h>
     4 #define N 41//总人数
     5 #define M 3//数到3 出列
     6 int main(void) {
     7     int people[N] = { 0 };
     8     int coun = 1, i = 0, pos = -1;
     9     int alive = 0;//或者的人数
    10 
    11     while (coun <= N) {
    12         pos = (pos + 1) % N;//环状处理
    13         if (people[pos] == 0)    i++;//如果没有报到该数,则继续往下
    14         if (i == M) { 
    15             i = 0; 
    16             people[pos] = coun;//表明第coun个出局的人的编号
    17             coun++;
    18         }//重新报数了呗
    19     }
    20 
    21     printf("
    约瑟夫排列(最初位置--约瑟夫环位置): 
    ");
    22     for (i = 0; i < N; i++) {
    23         printf("%d %d    ", i + 1, people[i]);
    24         if (i != 0 && i % 10 == 0)    printf("
    ");//输出10个换行
    25     }
    26 
    27     printf("
    
    准备剩下的人数: ");
    28     scanf("%d", &alive);
    29     printf("这%d个人初始位置应该排在下列序号处:
    ", alive);
    30 
    31     alive = N - alive;//计算需要跳过的人数的编号,跳过20个,alive就是20,
    32     //下面是查找需要保留的编号
    33     for (i = 0; i < N; i++)    if (people[i] > alive)    printf("初始序号: %d, 约瑟夫环序号: %d
    ", i + 1, people[i]);
    34     printf("
    ");
    35     return 0;
    36 
    37 }
  • 相关阅读:
    jmeter单一接口测试
    mac os下载安装jmeter
    十、集成使用redis
    Java之Poi导出Excel文档
    134. Gas Station (Array; DP)
    53. Maximum Subarray (Array; DP)
    36. Valid Sudoku (Array; HashTable)
    37. Sudoku Solver (Array;Back-Track)
    52. N-Queens II (Array; Back-Track)
    51. N-Queens (Array; Back-Track, Bit)
  • 原文地址:https://www.cnblogs.com/letianpaiai/p/12903684.html
Copyright © 2011-2022 走看看