Joseph环 问题,看清下面要求再答吧!谢谢咯
[问题描述]编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报...
[问题描述]
编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。
[基本要求]
利用单线性表的顺序存储结构模拟此过程,按照出列的顺序输出各个人的编号。其中要求顺序表的删除不移动数据元素。
测试数据:
m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,出列的顺序为6,1,4,7,2,3,5
大神帮帮忙吧!
重点:“报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数” “顺序存储结构” “顺序表的删除不移动数据元素”
密码改为3 1 7 2 4 8 4 展开
编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。
[基本要求]
利用单线性表的顺序存储结构模拟此过程,按照出列的顺序输出各个人的编号。其中要求顺序表的删除不移动数据元素。
测试数据:
m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,出列的顺序为6,1,4,7,2,3,5
大神帮帮忙吧!
重点:“报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数” “顺序存储结构” “顺序表的删除不移动数据元素”
密码改为3 1 7 2 4 8 4 展开
1个回答
展开全部
m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,出列的顺序为什么是6,1,4,7,2,3,5??
m=20,那么第一个出列的是6,以他的密码7重新作为m值,那下一个出列的应该是7啊,怎么会是1。
// Test input: 20 7 3 1 7 2 4 7 4
#include <stdio.h>
int main()
{
int A[256][2], M, N;
int i, n, prev, next;
scanf("%d%d", &M, &N);
for(i=0; i<N; i++)
{
A[i][0] = (i+1)%N;
scanf("%d", &A[i][1]);
}
prev = N-1;
next = 0;
for(i=0; i<N; i++)
{
while(--M)
{
prev = next;
next = A[next][0];
}
printf("%d\n", next+1);
M = A[next][1];
A[prev][0] = next = A[next][0];
}
}
追问
密码为3 1 7 2 4 8 4
虽然不是用的数据结构里的顺序表解决的,但是还是能用,分就给你吧
追答
顺序表是采用顺序存储方式的存储结构,虽然程序里没有定义顺序表数据类型,但数组就是种顺序表,而且程序使用的是静态链表,不知道你在数据结构里学过没
研载生物科技(上海)有限公司_
2023-08-02 广告
2023-08-02 广告
外泌体浓度检测可以选择武汉科锐诺生物科技有限公司。该公司贯彻执行科学管理、创新发展、诚实守信的方针,满足客户需求。在科锐诺领导携全体员工热情欢迎各界人士垂询洽谈,共创科锐诺更加美好的未来。请注意,仅供参考,建议咨询专业人士以获取更准确的信息...
点击进入详情页
本回答由研载生物科技(上海)有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询