昨天公司招人,让我给一个应聘者,考试一下,我觉的大家都刚毕业,能力还不是很强,所以就出了一道喊三出列的题,这道题很经典,在多数教材也有,或者是其变种。
问题:10个人依次报数,喊三的人出列,然后继续报数,人报完后,再轮回来继续喊数,输出出列人的次序。
问题很简单,但是他没有答出来,在此给各位师弟师妹们看看,希望能有所认知?在应聘时,我们要努力答出来,就算是很蹩脚的实现,也行!!
解答:
#include "stdio.h"
void del(int a[],int i,int gg);
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int k=0;
int g=10;
int y=1;
while(y)
{
int i=0;
for(i=0;i<g;i++)
{
k++;
if(k%3==0)
{
printf("%d\n",a);
del(a,i,g);
g--;
k=1;
}
if(i==g)
{
i=0;
}
if(g==1)
{
y=0;
break;
}
}
}
return 0;
}
void del(int a[],int i,int gg)
{
int j=0;
for(j=i;j<gg;j++)
{
a[j]=a[j+1];
}
} |