C语言中用数组解约瑟夫问题

 时间:2024-11-10 23:40:23

#include&l隋茚粟胫t;stdio.h>

#include<stdlib.h>

voidmain()

{

inty(intn,intm);

intp,q,r;

printf("请输入参选人的个数p和开始的位置q:\n");

scanf("%d%d",&p,&q);

r=y(p,q);

printf("最后那个人的初始位置是:%d\n",r);

}

inty(intn,intm)

{

inti,j=0,s=0,l;

int*a=(int*)malloc(sizeof(int));

int*b=(int*)malloc(sizeof(int));

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

{

a[i]=i+1;

}

a[n]=-1;

for(i=0;j!=n;i++)

{

if(a[i]==-1)

i=0;

if(a[i]!=0&&a[i]!=-1)

s++;

if(s==m)

{

b[j]=a[i];

a[i]=0;

j++;

s=0;

}

}

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

{

printf("%5d",b[i]);

}

printf("\n");

l=b[n-1];

returnl;

}

C语言中用数组解约瑟夫问题

扩展资料:

大体思路如下:

read(a)

b:=1,c:=1{b为某一组的元素个数,c为累计所加到的数}

whilec<ado(b:=b*2,c:=b+c){超过目标时停止加数}

c:=c-b{退到前一组}

x:=a-c{算出目标为所在组的第几个元素}

ans:=x*2-1{求出该元素}

write(ans)

参考资料:百度百科-约瑟夫问题

web前端初学--头部和导航 HTML5的网页制作基础 python 线性代数:[16]线性组合均值协方差阵 Python编程:如何简单使用递归函数 Thinkphp如何只输出索引为奇数的数组元素
热门搜索
重庆小吃图片 澳大利亚大堡礁图片 无厘头电影 电影片 画太阳的图片