用C语言做网站登录界面wordpress修改固定连接打不开
题目描述
N个小朋友手拉手站成一个圆圈,从第一个小朋友开始循环报数,报到M的那个小朋友退到圈外,然后他的下一位重新报"1"。这样继续下去,直到最后只剩下一个小朋友,他原来站在什么位置上呢?
输入
仅一行,有两个数N和M,其中N表示小朋友的人数,M表示报到数。1<N<1000,M<=N
输出
仅一个数,留下的小朋友的编号。
样例输入
复制
8 3 
样例输出
复制
7 
点个赞吧,还有关注~
上干货!
#include <iostream>
 using namespace std;
 #define N 10001
 int a[N];
int main() {
     int n, m, cnt = 0, p = 0;
     cin >> n >> m;
     for (int i = 0; i < n; i++) {
         a[i] = 0;
     }
     int r = n;
     while (r > 1) {
         if (a[p] == 0) {
             cnt++;
         }
         if (cnt == m) {
             a[p] = 1;
             r--;
             cnt = 0;
         }
         p++;
         p = p % n;
     }
     for (int i = 0; i < n; i++) {
         if (a[i] != 1) {
            cout << i + 1;
         }
     }
     return 0;
}
  
