约瑟夫问题:一个烧脑的要死的问题

下图中的输出案例:
5
1
7

自己写了一个不能循环输入的代码实现,不过这个应该是小问题,重点在于思路,代码如下:

include

using namespace std;
int main()
{
int n = 0, m = 0;
cin >> n >> m;
int i, j;
int arr[300];
for (i = 0;i < n;i++)
{
arr[i] = 1;
}
int count = 0;
int temp = n;
for (i = 0;temp != 1;i++)
{
for (j = 0;j < n;j++)
{
count += arr[j];
if (count == m)
{
arr[j] = 0;
count = 0;
temp--;
}
if (temp == 1)
{
for (int k = 0;k < n;k++)
{
if (arr[k] == 1)
cout << k + 1 << endl;
}
break;
}
}
if (temp == 1)
break;
}
system("pause");
return 0;
}

一下午时间!!!!啊!!!!!!!我的头发!!!!(苦脸)

posted @ 2025-07-19 21:32  暗神酱  阅读(7)  评论(0)    收藏  举报