猴子选大王·C语言

一只猫。。 2021-03-14 04:42:04
如图,要求用C语言数组写。 救救孩子吧!
...全文
204 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
六年级初中生 2021-05-05
  • 打赏
  • 举报
回复
#include<bits/stdc++.h>
using namespace std;

const int N = 1000000 + 10;
queue<int> q;
int x[N];
int n, m;

int main(){
	cin >> n;
	
	for (int i = 1; i <= n; ++i) {
		q.push(i);
		scanf("%d", &x[i]);
	}
	
	while (q.size() - 1){	
		int b = x[q.front()];
		for (int i = 1; i <= b - 1; ++i) {
			q.push(q.front());
			q.pop();
		}
	//	cout << q.front() << " ";
		q.pop();
	}
	
	cout << q.front() << endl;
	return 0;
}
自己在一本通上面做的
源代码大师 2021-05-03
  • 打赏
  • 举报
回复
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html
聆枫_ 2021-03-15
  • 打赏
  • 举报
回复
n大于2吗?
NorZ 2021-03-15
  • 打赏
  • 举报
回复
...你这个退出之后从哪一只猴子开始数 1 ?
赵4老师 2021-03-15
  • 打赏
  • 举报
回复
仅供参考:
//假设有n个人团团围做,从第1个人开始数数,数到第m个人时候,第m个人出列,
//然后继续从1开始数数,数到第m个人退出
#include <stdio.h>
#include <conio.h>
int i,k,t;
int n,m;
static char f[1001];//0该座位未出圈,1该座位已出圈
void main() {
    while (1) {
        printf("Input n m(1000>=n>=m>=1):");
        fflush(stdout);
        rewind(stdin);
        if (2==scanf("%d%d",&n,&m)) {
            if (1000>=n && n>=m && m>=1) break;
        }
    }
    t=0;//已出圈总人数
    i=1;//座位编号
    k=1;//当前要数的数
    while (1) {
        if (0==f[i]) {
            if (m==k) {
                t++;
                f[i]=1;
                printf("%3d ",i);
                if (0==t%10) printf("\n");
                if (t>=n) break;
            }
            k++;if (k>m) k=1;
        }
        i++;if (i>n) i=1;
    }
    cprintf("Press any key ...");
    getch();
}

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧