xiaohao0033 2015-05-25 10:26 采纳率: 0%
浏览 2195

c语言的一道小问题。。。谢谢

“3”是聚会时大家非常喜欢玩的一款游戏。现在定义游戏规则如下:

n个人围成一圈,序号分别为1-n,从1号玩家从1开始报数。

如果有玩家报的数是3的倍数或者个位数字为3的玩家退出游戏,下一位玩家继续之前的玩家报数,直到场上只剩下1名玩家,这名玩家就是游戏的胜利者。

比如有10个玩家时,对应的游戏过程如下:

所以最后是5号玩家胜利。

现在给出玩家个数n,请输出最终胜利的玩家序号。

输入格式
仅1行,表示参与游戏的玩家个数。

测试用例中,n小于等于65535大于等于1。

输出格式
输出胜利的玩家序号。

#include
int fac3(int n)
{
int a[65535][65535]={0},i,k;
static int l=0;
k=0;
for(i=0;i<n;i++)
{a[l][i]=l*n+i+1;}
for(i=0;i<n;i++)
{
if(a[l][i]!=0||a[l][i]-10*i!=3)
{
a[l+1][k]=a[l][i];
k++;
}
}
l++;

fac3(k);
if(k==1)
{
    for(i=0;i<n;i++)
    if(a[l-1][0]==a[0][i])
    return i;
}

}
int main()
{
int n,m;
scanf("%d",&n);
m=fac3(n);
printf("%d",m);

}

为什么一运行就崩溃啊?希望有好心人帮改一下,谢谢。。。(预处理指令粘贴不上麻烦加一下)

  • 写回答

12条回答 默认 最新

  • threenewbee 2015-05-25 10:46
    关注

    a[65535][65535]
    这会开一个4GB大小的数组,你的计算机根本分配不了这么多内存。
    这就是一个约瑟夫环问题,自己google下看看别人怎么写的。

    评论

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥15 如何修改pca中的feature函数
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况