2018年蓝桥杯省赛填空题 1.猴子分香蕉 知识点:枚举

33 阅读1分钟

1.猴子分香蕉 - 蓝桥云课 (lanqiao.cn)

枚举,如果遇到满足条件的就输出:

#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;
}

注意至少要从第一个不满 image.png

注意至少要从第一个不满足的开始枚举,比如如果我i从16开始枚举,16%5==1,就满足第一个条件了,就会结束循环输出16:

image.png

因此我们要从17开始枚举,