4.25

来源:互联网 发布:微信点菜系统java源码 编辑:程序博客网 时间:2024/06/06 09:49


//author: zp    date:2017.4.25

#include <stdio.h>

main()
{
     int x,i,j,cont = 0;
      for (i = 1; ;i++)    //i是鱼的总数
      {
          cont = 0;
          for (j = 0; j<= 4; j++)
          {
              if (j == 0 && ((i - 1) % 5) == 0)
              {
                 x = (i - 1) / 5;
                 cont++;
              }
              if ((j > 0) && (((4*x-1) % 5) == 0) && ((i - 1) % 5) == 0)
              {
                 x =((4*x-1)/5);
                 cont++;
              }

          }
          if ((x % 5 == 0) && (x > 0) && (cont == 5))
          break;
      }

     printf ("%10d%10d%10d\n",x,i,cont);
}

  这个程序题意是五人分鱼,每人都是丢弃多余的一条,然后均分五份。

  难点在于如何控制循环体,尽管进入循环,但是有效内循环必须为五次,这样才能确保无人的均分的行为都符合要求。

  我设置cont了进行强制计数,每次进入内循环都刷新cont值为0.这样才能符合题意。

  所以此题的启示:在循环内,可以设置新的计数变量,来满足题目的需求。

0 0
原创粉丝点击