试编写一个求解Josephus问题的函数。用整数序列1, 2, 3, ……, n表示顺序围坐在圆桌周围的人,并采用数组 10

请用C++并且把完整的程序写下来... 请用C++并且把完整的程序写下来 展开
 我来答
百度网友986c022
2013-03-06
知道答主
回答量:16
采纳率:0%
帮助的人:14.5万
展开全部
#include<stdio.h>
int Josephus(int n, int k)
{
int i, j, s, num, *a;
a = new int[n+1];
j = s = 0;
for (i=0; i<=n; i++)
a[i]=1;
for(i=1; i<=n; i++)
{
if (a[i] == 1)
{
j = j+a[i];
if (j == k)
{
j=0;
a[i]=0;
s++;
}
if (s == n)
{
num=i;
break;
}
}
if (i == n) i=0;
}
delete []a;
return num;
}
void main()
{
int n, k, x;
scanf("%d%d", &n,&k);
x = Josephus(n, k);
printf("%d\n", x);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式