有n个人围成一圈,顺序排号从第1个人开始报数(丛1到3报数)凡报到3的人退出圈子最后留下的是原来第几号

来源:百度知道 编辑:UC知道 时间:2024/09/26 10:55:02
请用一个C的程序解,并且必须用到指针

可不可以用指针指向数组?
你这个指针到底指什么指针?
#include<stdio.h>
main()
{
int n;
int array[20000];
int a=0,b,c;
int i,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
array[i]=i;
c=n;
b=0;
do
{
for (i=1,j=0;i<=n;i++)
{
if(array[i]%3==0&&array[i]!=0)
{array[i]=0;j++;}
else if(array[i]==0);
else
array[i]=array[i]+c-j;
}
b=c/3;
c=c-j;
a=a+c;
}while(b);
for (i=1,j=0;i<=n;i++)
{
if(array[i]%3==0&&array[i]!=0)
{array[i]=0;j++;}
else if(array[i]==0);
else
array[i]=array[i]+c-j;
}
for(i=1;i<=n;i++)
{
if(array[i]!=0) printf("it's %d!\n",i);
}
getchar();
getchar();
}

自己写出来比较好,用数组 或者链表都可以 我给你个数学方法,
#include "stdio.h"

main()
{
int i,s=0,n=4,m=3;
for(i=2;i<=n;i++)
s=(s+m)%i

有n个人围成一圈,顺序排号。 2:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子, n个人围成一圈,从第m个人开始顺序报号,凡报到p的人退出圈子,输出依次退出圈子的人来的序号 有 N 个人围成一圈参加游戏,游戏的规则是: N个人围成一圈,甲乙之间巧有R个人的概率是多少,只考虑甲到乙顺时钟方向. N只猴子围成一圈,从第P个开始,每隔M只报数,打印每次过程,只剩下一个时为大王。 n个人围成一圈和排成一列的排列方法分别怎么计算? 20. n个人围成一圈,1,2,3循环报数,报到3的人退出 设有n个人坐一圈并按顺时针方向从1到n编号, 13个人围成一圈,从第一个人开始顺序报号1、2、3。凡报到3者退出圈子。找出最后留在圈子的人原来的号码