首页 » 网站推广 » 约瑟夫环php数组技巧_约瑟夫环的数组解法

约瑟夫环php数组技巧_约瑟夫环的数组解法

访客 2024-11-05 0

扫一扫用手机浏览

文章目录 [+]

问题描述:n个人围成一圈,从第一个人开始报数,报到m的人出圈,剩下的人连续从1开始报数,报到m的人出圈;如此往来来往,直到末了剩下的人胜出。
算法书上基本是用链表来办理问题,当初学者对链表都还不是很清楚的时候,可以利用已学的数组知识来办理。
代码如下:

#include <iostream>

约瑟夫环php数组技巧_约瑟夫环的数组解法

using namespace std;

约瑟夫环php数组技巧_约瑟夫环的数组解法
(图片来自网络侵删)

int main()

{

//输入n个人、报数m

int n, m;

cin>>n>>m;

//将n个人编号存入数组

int a[n];

for(int i = 0; i < n; i++)

a[i] = i+1;

//loser为出圈的人数,count为数到m的计数器

int loser = 0;

int count = 0;

//当出圈人数小于n-1的时候,一贯循环下去

while(loser < n - 1)

{

for(int i = 0; i < n; i++ )

{

//数到m的人后,该数组元素置0,该人出圈,下一轮重新数的时候跳过,数组元素不为0解释该人仍在圈内

if (a[i]!=0)

{

count++;

if(count == m)

{

loser++;

a[i] = 0;

count = 0;

}

//当出圈的人为n-1,游戏结束,跳出循环,剩下的人胜出

if(loser == n - 1)

break;

}

}

}

//打印出终极胜出的人的编号

for(int i = 0; i < n; i++)

{

if(a[i]!=0)

cout<<i+1;

}

return 0;

}

标签:

相关文章

php统计语法技巧_PHP入门PHP基本语法一

认识PHP代码标识利用不同的四对标记指令分隔符程序注释变量什么是变量如何定义变量变量名的命名规则4.1 PHP标量类型—整型4.2...

网站推广 2024-12-09 阅读0 评论0