有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出(pascal
来源:百度知道 编辑:UC知道 时间:2024/05/18 01:44:10
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出
圈子,问最后留下的是原来第几号的那位
圈子,问最后留下的是原来第几号的那位
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
1. 程序分析:
2.程序源代码:
#define nmax 50
main()
{
int i,k,m,n,num[nmax],*p;
printf("please input the total of numbers:");
scanf("%d",&n);
p=num;
for(i=0;i<n;i++)
*(p+i)=i+1;
i=0;
k=0;
m=0;
while(m<n-1)
{
if(*(p+i)!=0) k++;
if(k==3)
{ *(p+i)=0;
k=0;
m++;
}
i++;
if(i==n) i=0;
}
while(*p==0) p++;
printf("%d is left\n",*p);
}
你看懂了吗?看懂就送分吧
如果看不懂你就是瞎问
再送点详解给你
#include <stdio.h>
#define N 50 // 排队人数(可任意更改)
#define CAL 3 //凡报3的人出列(可任意更改)
//下面是排队编号函数:从h 开始的n个人依次编号1到n
void stdline(int *h,int n)
{
int i;
for(i=1;i<n+1;i++) *(h+i-1)=i;
}
/*下面函数表示从指针h处开始的人数为boy个人
有n个人围成一圈,顺序排号。
2:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,
n个人围成一圈,从第m个人开始顺序报号,凡报到p的人退出圈子,输出依次退出圈子的人来的序号
有 N 个人围成一圈参加游戏,游戏的规则是:
N个人围成一圈,甲乙之间巧有R个人的概率是多少,只考虑甲到乙顺时钟方向.
n个人围成一圈和排成一列的排列方法分别怎么计算?
20. n个人围成一圈,1,2,3循环报数,报到3的人退出
设有n个人坐一圈并按顺时针方向从1到n编号,
13个人围成一圈,从第一个人开始顺序报号1、2、3。凡报到3者退出圈子。找出最后留在圈子的人原来的号码
出圈问题:出圈,n个围成一圈,数到第m个人出圈,再从m个人的下一个人数,依次循环