幸运的编号
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:
有n个人围成一圈,顺序编号。从第一个人开始报数(从1到m),凡报到m的人退出。问最后一个人的编号是多少?
输入:
输入两个正整数n和m
输出:
最后一个人的编号。
输入样例:
5 2
输出样例:
3
程序如下:
#include<iostream>
using namespace std;
int a[1000];
int n,m;
void init(); void output();
int main() { int i,k,counter; cin>>n>>m; init(); counter=0; k=1; i=0; while(counter<n-1) { if(a[i]==1) { if(k==m) { a[i]=0; counter++; k=1; } else { k++; } } i=(i+1)%n; } output(); return 0; }
void init() { int i; for(i=0;i<n;i++) { a[i]=1; } }
void output() { int i; for(i=0;i<n;i++) { if(a[i]==1) { cout<<i+1<<endl; break; } } }