• 约瑟夫环(递归)


    约瑟夫环

     1 #include <cstdio>
     2 
     3 using namespace std;
     4 
     5 int fun(int m,int k,int i)   //m表示当前环内的总数,k表示k个数之后淘汰,i表示淘汰次数。
     6 
     7 {
     8 
     9     if(i==1)                   //第一次出环的数
    10 
    11         return (m+k-1)%m;
    12 
    13     else                                  //不是第一次出环的,先向上递归到第一次,再依次返回。因为每一次淘汰后,要从淘汰后一位开始。
    14 
    15         return (fun(m-1,k,i-1)+k)%m;
    16 
    17 }
    18 
    19 int main()
    20 
    21 {
    22 
    23    for(int i=1;i<=10;i++)
    24 
    25         printf("第%2d次出环:%2d
    ",i,fun(10,3,i));         //依次输出每次淘汰是的数
    26 
    27     return 0;
    28 
    29 }
  • 相关阅读:
    jps命令
    Collection
    java.lang包中异常
    final关键字
    JVM运行时数据区域
    String详解
    哈希码
    Java虚拟机
    垃圾收集器与内存分配策略
    solr简介
  • 原文地址:https://www.cnblogs.com/zou-zou/p/5320406.html
Copyright © 2020-2023  润新知