-
这是我写的,看不懂就问吧,我写的东西很有特色。
做到这一点的方法是从一大堆自由放任的数字 1、2、3、4、5、6、7、8、9、10、1、2、3 等开始。
然后,从第一个数字开始,每三个人取一个数字,在每个数字之后,省略当前数字后面的所有相同数字,然后每三个数字取一个数字,直到人数是人数之和。 一般的方法是大量使用 STL。
-
约瑟夫·林。
是一个数学应用问题:
已知 n 个个体(数字 1、2、3....n)围坐在圆桌旁。从数字为k的人开始,数到m的人不在队列中; 他的下一个人从 1 开始数,数到 m 的人又出去了; 重复这一过程,直到圆桌会议周围的所有人都排成一排。
这是约瑟夫环问题的实际场景,您必须输入三个正整数 n、m 和 k 才能找到列的序列。 此问题使用典型的循环链表数据结构,即将链表尾元素的指针指向 head 元素。 p->link=head
解决问题的核心步骤:
1.创建一个具有 n 个节点和无头节点的循环链表。
2.确定第一个报告号码的人的位置。
3.不断从链表中删除链接点,直到链表为空。
void Josephus(int n,int k,int m) n为总人数,k是第一个开始号码的人,m是出队列的人喊出的数字。
p>link=list;*循环链表*
p=list;使 p 指向头节点
将当前指针移动到第一个要报告号码的人*
for(i=0;ilink;
删除循环中的队列节点
while(p->link!=p)
r->link=p->link;
printf("已删除的元素: %4d",p->data);
free(p);
p=r->link;
printf("最后一个要删除的元素是:4D",p->data);}
-
约瑟夫环问题有一个递归公式,请自行访问维基百科。
-
约瑟夫的戒指的工作原理如下:
1.一群人围成一圈(例如,n)。
2. 以某个数字开头(例如 k)。
4. 保持循环,直到每个人都退出队列并且约瑟夫戒指结束。
-
约瑟夫之环(Joseph's Problem)是一个数学应用问题:已知n个个体(数字为1,2,3......n)围坐在圆桌旁。
从数字为k的人开始,数到m的人不在队列中; 他的下一个人从1开始数,数到M的人又被李晗列出来了; 重复这一过程,直到圆桌会议周围的所有人都排成一排。 通常在解决这类问题时,我们将数字从 0 n-1 弯曲,最后消音 1 结果 +1 是原始问题的解。
-
lz,这样的问题很多,可以在线复制吗?