#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int who_win(int num_of_players)
{
int count =0;
int last_length =num_of_players;
int winer=100;
char *p =(char *)malloc(num_of_players); //申请内存
if(!p)
{
printf("没有足够的内存\n");
return -1;
}
memset(p,1,num_of_players); //全部设置为0
while(1)
{
for(int i=0;i<num_of_players;i++)
{
if(*(p+i))
{
count++;
if(count==3)
{
*(p+i) = 0;
count=0;
last_length--;
}
}
}
if(last_length==1)
{
for(int i=0;i<num_of_players;i++)
{
if(*(p+i) == 1)
{
winer=i+1;
break;
}
}
}
else
continue;
if(winer!= 100) break;
}
free(p);
return winer;
}
int main(void)
{
printf("%d\n",who_win(400000));
}
#include<stdlib.h>
#include<string.h>
int who_win(int num_of_players)
{
int count =0;
int last_length =num_of_players;
int winer=100;
char *p =(char *)malloc(num_of_players); //申请内存
if(!p)
{
printf("没有足够的内存\n");
return -1;
}
memset(p,1,num_of_players); //全部设置为0
while(1)
{
for(int i=0;i<num_of_players;i++)
{
if(*(p+i))
{
count++;
if(count==3)
{
*(p+i) = 0;
count=0;
last_length--;
}
}
}
if(last_length==1)
{
for(int i=0;i<num_of_players;i++)
{
if(*(p+i) == 1)
{
winer=i+1;
break;
}
}
}
else
continue;
if(winer!= 100) break;
}
free(p);
return winer;
}
int main(void)
{
printf("%d\n",who_win(400000));
}