40.孩子们的游戏(圆圈中最后剩下的数)
题目内容:

代码及思路:

因为是环状的,因此从0开始,第m个数字时(m-1)%n

#include<iostream>
#include<vector>
using namespace std;
class Solution
{
public:
int LastRemaining_Solution(int n, int m)
{
if (n < 1 || m < 1)
return -1;
int last = 0;
for (int i = 2; i <=n; i++)
{
last = (last + m) %i;
}
return last;
}
};
void main()
{
Solution* object = new Solution;
vector<int> numbers;
int num;
char ch;
do
{
cin >> num;
numbers.push_back(num);
cin.get(ch);
} while (ch == ',');
int n = numbers.size();
int m;
cin >> m;
int res = object->LastRemaining_Solution(n, m);
cout << res << endl;
}
博客围绕孩子们的游戏,即圆圈中最后剩下的数这一问题展开。提到题目内容,还给出代码思路,指出因是环状,从0开始,第m个数字是(m - 1)%n。
&spm=1001.2101.3001.5002&articleId=90475411&d=1&t=3&u=d9e43c798ee24771adb25b93469adb24)

被折叠的 条评论
为什么被折叠?



