有任意N个球放在一个框内,每个球上都标一个小于50的数字,现从框中取球,一次可取多个,只要之和等于54就可以,求:怎样取法,才能使剩下的球最少,并打印出结果。(欢迎大家踊跃发表自己的想法)

解决方案 »

  1.   

    设:任意球数为 balls = n;
    取出的球数为 cout = 0;
    球标记数为 score = 54;流程:
    1.一次取出球数为x;
    2.score = score - 球标记数总和
      score > 0   取球成功,count += x ;从步骤1继续循环取球
      score = 0   取球成功,count += x ;计算所剩球数:balls = n - count;
      score < 0   取球失败,从步骤1继续循环取球一直重复上述步骤1,2直到找到尽可能所剩最少的球数的可能