约瑟夫问题:一个烧脑的要死的问题
下图中的输出案例:
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;
}
一下午时间!!!!啊!!!!!!!我的头发!!!!(苦脸)
浙公网安备 33010602011771号