枚举,如果遇到满足条件的就输出:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i=0;
for(i=17;;i++)
{
if(i%5==1) //分5堆,还剩1个
if((i-1)*4/5%5==2) //吃掉1个,藏起来一堆,还剩2个
if(((i-1)*4/5-2)*4/5%5==3) //吃掉两个,藏起来一堆,还剩3个
if((((i-1)*4/5-2)*4/5-3)*4/5%5==4) //吃掉3个,藏起来一堆,还剩4个
if(((((i-1)*4/5-2)*4/5-3)*4/5-4)*4/5%5==0)break; // 吃掉4个藏起来一堆,不剩
}
printf("%d",i);
return 0;
}
注意至少要从第一个不满
注意至少要从第一个不满足的开始枚举,比如如果我i从16开始枚举,16%5==1,就满足第一个条件了,就会结束循环输出16:
因此我们要从17开始枚举,