点击这里更换您喜欢的皮肤wtboj 首页
请点击这里登入noios   首页 入门 c++讲义 入门教程视频 金牌教程 入门视频 站务 公告 | 题库 记录 竞测 测试 闯关 作业 排名 团队 讨论 | 换肤 | 登入 注册  
News >>   新增功能:各团队管理员可以发布本团队作业了 ()

From VijosGuest0
猴子选大王
讨论 Discussion
 
G
方法1:
#include<bits/stdc++.h>
using namespace std;
int main(){

freopen("p1052.in","r",stdin);
freopen("p1052.out","w",stdout);
int a[100]={0};
int i=0,j=0,s=0,k=0,m,n;


cin>>m>>n;
for(i=1;i<=m;i++)a[i]=1;
for(i=1;i<=m-1;i++) {


  do{

  j++;
  if (j==m+1) j=1;
  s=s+a[j];
}while(s!=n);
  
  a[j]=0;
  s=0;
}
for(i=1;i<=m;i++)
if (a[i]==1 )cout<<i;
fclose(stdin);
fclose(stdout);
}
方法2:
#include<bits/stdc++.h>
using namespace std;
int main(){

  freopen("p1052.in","r",stdin);
  freopen("p1052.out","w",stdout);
  
int n,m,i,j,k=0,x=0,y=-1,t;
cin>>n>>m;
vector <int > a(n); //定义a动态向量 有n个元素
for(i=0;i<=n-1;i++){   //猴子编号分别输入各个元素
a[i]=i+1;
}
 while(k<n){
  while(x<m){
   x++;
   y++;
   if(y==a.size())y=0; //超过猴子一圈总数 ,说明重新来到第0个猴子
  
}
t=y;
k++;
if(k==n) cout<<a[y] ; //第y个出列。

a.erase(a.begin()+y);  //删除a[y]变量

   
   
y=t-1;
if(y<0)y=a.size()-1;
  x=0;
 }

}
( )

此主题无回复显示
发布讨论主题 回复讨论主题
Flag
  
题号
  P1052
  其它
通过
  143人
提交
  564次
通过率
  25%
难度
  0
提交 讨论 题解
 Copyright wtboj © 2005-2006. www.wutuobang.date Powered by wtboj 关于 联系 帮助
 wtboj Information ---- Total Users : 1363 | Online Users / Processes : 0 / 181 | Processed Time : 434 ms | Server Time : 2025/12/17 12:54:13