• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
donneyming
博客园    首页    新随笔    联系   管理    订阅  订阅
约瑟夫问题 数组解法

#include <iostream>
using namespace std;

int KillMan(int a[],int nLen,int key)
{
 
 int i = 0 ,j = 0 ,count = 0,killerNum = 0;
 bool  flag =  true; 

 if(nLen < key)
  return -1;
 while(flag)
 { 
  if(a[i] == 0)
  {
   count ++;
  }
  if(count == key)
  {
   a[i] = 1;
   cout<<i+1<<”,”;
   count = 0;
   killerNum ++;
  } 
  if(i == nLen -1)
  {
   i = -1;
  }

  if(killerNum == nLen -1)
   flag  = false;

  i++;
 }

 for(;j< nLen;j++)
  if(a[j]!= 1)
   cout<<”alive:”<<j+1;

 return 0;
}
int main()
{
 int a[10];
 for(int i=0;i<10;i++)
  a[i] = 0;
 KillMan(a,10,1);
 return 0;
}

posted on 2010-11-18 22:06  donneyming  阅读(337)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3