早教吧 育儿知识 作业答案 考试题库 百科 知识分享

谁会C语言课程设计Josephus问题有一群学生围成一圈,顺序编号,从第一个学生起,顺时针方向报数,从1报到m,凡是报到m的学生离开圈子,随着学生的不断离开,圈子越缩越小,最后剩下的

题目详情
谁会C语言课程设计Josephus问题
有一群学生围成一圈,顺序编号,从第一个学生起,顺时针方向报数,从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);
}
看了谁会C语言课程设计Joseph...的网友还看了以下:

麦田怪圈是怎样形成的?在《少年日报》上看到关于“麦田怪圈”的报道,想进一步了解它,  2020-04-25 …

六年(3)班有38个小学生,他们订阅《小学生周报》、《儿童画报》、《中国少年报》,这三种报刊每人至  2020-06-14 …

六年级有38个学生,他们订阅《故事会》,《上年报》,《画报》,这三种报刊每人至少订1种.有的订二种  2020-06-16 …

英语翻译(1)而学人文学科的报偿又在哪里呢?要说服父母人文学科也确实有所报偿并不容易.(2)由学习  2020-07-26 …

据报道,一个经常在某中学附近敲诈学生的流氓团伙最近被警方抓获,可直到这一流氓团伙落入法网,警方也没接  2020-11-07 …

某校为了提高学生身体素质,组织学生参加乒乓球、跳绳、羽毛球、篮球四项课外体育活动,要求学生根据自己的  2020-12-06 …

六(3)班有38个小学生,他们订阅《小学生周报》《儿童画报》和《中国少年报》.如果这三种报刊每人至少  2020-12-09 …

有38人,他们订了小学生周报、儿童画报、中国少年报这三种报刊吗,每人至少订1种,有的订2种,或3种,  2020-12-09 …

写一篇英语作文70词左右内容.我院学生会定于11月12日周二下午2点在图书馆的第一报告厅听美国教授史  2020-12-31 …

求七年级数学学知报的图形单元测试题的答案以及后面直线、角、期末等单元测试的答案(从图形到最后测试的答  2021-01-22 …