求c++编程题答案

来源:百度知道 编辑:UC知道 时间:2024/05/28 13:09:40
1.有1-N个人,顺时针围成一个圈,从第1个人开始报数,当报到5或5的倍数时,该人退出圈,继续报数,把退出圈的人按退出顺序列出号码。

2.有一个长整数N,求N!结果中末尾中0的个数。

3.有甲乙丙丁4个人,其中只有1个人是小偷,他们说的话可能是真话也可能是假话,根据他们的话判断出哪个是小偷。
甲说:乙没偷 丁偷了
乙说:自己没偷 丙偷了
丙说:甲没偷 乙偷了
丁说:自己没偷

1题:
#include <stdio.h>
void main()
{int i,k,m,n,num[50],*p;
printf("\ninput number of person: n=");
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==5)
{*(p+i)=0;
k=0;
m++;
}
i++;
if (i==n) i=0;
}
while(*p==0) p++;
printf("The last one is NO.%d\n",*p);
}