小白来看
猴子问题,每满三个便可去除,去除方式便是把它变为1,剩余的那个0便是我们要的结果。
#include<stdio.h>//中心思想,用0\1区分出局的猴子
int main()
{
int i,n;
int arr[1000];
int sum = 0, count = 0;
scanf("%d",&n);
for(i = 0; i < n; i++)
{
arr[i] = 0;//先把所有的数赋值为0
}
i = 0;//不要忘记把i归零
while(count != n - 1)//n-1是因为最后会有一个答案要输出
{
if(arr[i]==0)//首先对值为0的数进行递加
sum++;
if(sum == 3)//当满足条件时,sum先归零,再把数改为1,count循环结束条件加1
{
sum = 0;
arr[i] = 1;
count++;
}
i++;//正常递加,到最后一个时从头开始
if(i == n)
i = 0;
}
for(i = 0; i < n; i++)//找到为零的猴子,下标要加一
{
if(arr[i] == 0)
printf("%d",i+1);
}
return 0;
}