今天刚参加一个笔试,有一道编程题有点乱,还望赐教,题目如下:

2024-12-30 04:08:04
推荐回答(2个)
回答1:

/*我计算了一下,当为1轮时是7次*/

#include
#include

// 检测是否每个人都数过n次
int check(int n, int *num)
{
int i;
int single = 1;
for (i=0; i<10; i++)
{
if(num[i] {
single = 0;
break;
}
}
return single;
}
// 检测当前数字中是否含有7
int checkSeven(int num)
{
int i, single=1;
char str[256];
itoa(num, str, 10);
for (i = 0; i<256; i++)
{
if(str[i]=='7')
{
single = 0;
break;
}
}
return single;
}

void main()
{
int num[10];
int i, j, count=0, n = 1; // n即为轮数
for (i = 0; i<10; i++)
{
num[i] = 0;
}
j = 1;
i = 0;
while (!check(n, num))
{
if (i>9)
{
i = 0;
}
if (j%7==0 || checkSeven(j) == 0 )
{
num[i]++;
}
i++;
j++;
}

count = num[0];
for (i = 1; i<10; i++)
{
if(num[i]>count)
{
count = num[i];

}
}
// n = 1, result = 7
printf("%d\n", count);
}

回答2:

从某个人开始,记为1号,依次2号。。7..。10号。
一圈后,分别增10,即报数11,12,。17。。20
显然,倒霉催的7号,永远是拍桌子的命,

这里"一轮是指这十个人每个人都报过一次数"就有点扯了,很难说得通啊。7号永远没机会报数啊?不解,出的好题目。