早教吧作业答案频道 -->其他-->
谁会C语言课程设计Josephus问题有一群学生围成一圈,顺序编号,从第一个学生起,顺时针方向报数,从1报到m,凡是报到m的学生离开圈子,随着学生的不断离开,圈子越缩越小,最后剩下的
题目详情
谁会C语言课程设计Josephus问题
有一群学生围成一圈,顺序编号,从第一个学生起,顺时针方向报数,从1报到m,凡是报到m的学生离开圈子,随着学生的不断离开,圈子越缩越小,最后剩下的学生便是 胜利者,问最后剩下的学生是原来的第几号? 分析:首先对每一个学生赋以一个序号值作为学生离开时,将他的序号改为0作为离开的标志。
有一群学生围成一圈,顺序编号,从第一个学生起,顺时针方向报数,从1报到m,凡是报到m的学生离开圈子,随着学生的不断离开,圈子越缩越小,最后剩下的学生便是 胜利者,问最后剩下的学生是原来的第几号? 分析:首先对每一个学生赋以一个序号值作为学生离开时,将他的序号改为0作为离开的标志。
▼优质解答
答案和解析
#include
#include
struct Link{
int id;
Link *next;
};
void Initialize(int n, Link *head)
{
int i;
Link *p;
for (i = 1, p = head; i <= n; i++){
p-> next = (Link *) malloc (sizeof(Link));
p = p-> next;
p-> id = i;
}
p-> next = head-> next;
}
void Delete(Link *node)
{
Link *temp;
temp = node-> next;
printf( "%d ", node-> next-> id);
node-> next = temp-> next;
free(temp);
}
void main()
{
Link *head, *p;
int n, i, k;
printf( "%s ", "Input n,k = ");
scanf( "%d%d ", &n, &k);
head = (Link *) malloc (sizeof(Link));
head-> next = (Link *) malloc (sizeof(Link));
Initialize(n, head);
for (p = head, i = 1; p != p-> next; p = p-> next, i++){
if (i == k){
i = 1;
Delete(p);
}
}
printf( "\n ");
printf( "%d ", p-> id);
}
#include
struct Link{
int id;
Link *next;
};
void Initialize(int n, Link *head)
{
int i;
Link *p;
for (i = 1, p = head; i <= n; i++){
p-> next = (Link *) malloc (sizeof(Link));
p = p-> next;
p-> id = i;
}
p-> next = head-> next;
}
void Delete(Link *node)
{
Link *temp;
temp = node-> next;
printf( "%d ", node-> next-> id);
node-> next = temp-> next;
free(temp);
}
void main()
{
Link *head, *p;
int n, i, k;
printf( "%s ", "Input n,k = ");
scanf( "%d%d ", &n, &k);
head = (Link *) malloc (sizeof(Link));
head-> next = (Link *) malloc (sizeof(Link));
Initialize(n, head);
for (p = head, i = 1; p != p-> next; p = p-> next, i++){
if (i == k){
i = 1;
Delete(p);
}
}
printf( "\n ");
printf( "%d ", p-> id);
}
看了谁会C语言课程设计Joseph...的网友还看了以下:
为下面语段空缺处选择与原文连贯顺畅的一项是我最爱草原高举着的那一盏神灯,照见懵懂里的幽暗眼神;我最 2020-04-23 …
选出填入横线处上下应衔接最顺畅的一项是[]咬文嚼字有时是一个坏习惯,所以这个成语的含义通常不很好。 2020-05-17 …
运用逻辑顺序的一般是事理说明文? 2020-06-08 …
关于数学组合11选3.从11个数字里选择3个数做一个组合,不分顺序的一共有多少个组合.假如11个数 2020-06-10 …
VSEPR理论中关于斥力顺序的一个问题“处于中心原子的全充满价层里的键合电子之间的斥力大于处于中心 2020-06-16 …
我捡的毛毛虫,帮我分辨一下.全身都是黑色的,那些毛很有顺序的一簇一簇的排列下来,毛很长,是黑色的, 2020-07-01 …
在“秋风一阵阵地吹来”的后面,接下去最顺当的一组句子是()?A.树枝摇曳着,发出沙沙的响声,月光和 2020-07-04 …
“门前是一条河.”后面接下去最顺当的一组句子是A.河边是一片很大的打谷场。三面都是高大的柳树。山门 2020-07-04 …
为下面这段文字画线处选择一个句子,衔接得最顺畅的一句是[]这是一个美丽的环,当它一半没在地平线下,另 2020-11-07 …
与“晚风一阵阵吹来”一句衔接最顺当的一项是()A.竹枝摇曳着,月光和竹影也一起晃动起来,发出沙沙的响 2020-11-10 …