整除15问题

给定一个只包含数字 [0..9] 的字符串,求使用字符串中的某些字符,构造一个可以被15整除的最大整数。注意,字符串中的每一个字符最多只能使用一次。 输入:程序从标准输入读入数据,每行数据由一串数字组成,长度为1到1000。 输出:针对每一行输入,输出一个结果,每一个结果占一行。若是没法构造出可以被15整除的整数,请输出impossible。blog

把0~9数分为以下几类:
第一类:0、三、六、9(除3余0)
第二类:二、五、8(除3余2)
第三类:一、四、7(除3余1)字符串

首先咱们考虑可否知足整除5,若能整除5而后考虑从原字串中删除最少并且最小的数使得知足整除3。程序

  • 状况1:构造的这个数各位数字和除3余0,这样不用删数。
  • 状况2:构造的这个数各位数字和除3余1,则只要删除余1的那一类数中最小的一个,若是数串中没有余1的数,就删除两个余2的数。
  • 状况3:构造的这个数各位数字和除3余2,则只要删除余1的那一类数中最小的两个。若是没有数串中没有余1的数,就删除一个最小的余2的数。

最后,剩余的数串以最大的而且以知足整除5的要求输出。im

在0存在的时候,就按计数的顺序输出便可。数据

若是在数串中没有0,则必须有个5放在个位。margin

相关文章
相关标签/搜索