试题编号 | 201712-2 |
试题名称 | 游戏 |
时间限制 | 1.0s |
内存限制 | 256.0MB |
问题描述 |
问题描述 给定n和k,请问最后获胜的小朋友编号为多少? |
#include <stdio.h>
typedef struct child{
int id;
int val;
}Child;
bool Is_killed(int number,int k);
int main()
{
int i,n,k;
int num = 1;
scanf("%d %d",&n,&k);
Child c[n+1];
for( i = 1; i <= n; i ++)
{
c[i].id = i;
c[i].val = 1;
}
int N = n;
while(n != 1)
{
for( i = 1; i <= N; i ++)
{
if(c[i].val == 1)
{
if(Is_killed(num,k))
{
c[i].val = 0;
n --;
if(n == 1)
{
break;
}
}
++ num;
}
}
}
for( i = 1; i <= N; i ++)
{
if(c[i].val == 1)
{
printf("%d\n",c[i].id);
}
}
return 0;
}
bool Is_killed(int number,int k)
{
if(number%k == 0 || number% 10 == k)
{
return true;
}else{
return false;
}
}