zoukankan      html  css  js  c++  java
  • 整除15问题

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

    把0~9数分为如下几类:
    第一类:0、3、6、9(除3余0)
    第二类:2、5、8(除3余2)
    第三类:1、4、7(除3余1)

    首先我们考虑能否满足整除5,若能整除5然后考虑从原字串中删除最少而且最小的数使得满足整除3。

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

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

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

    如果在数串中没有0,则必须有个5放在个位。

  • 相关阅读:
    原创 爱因斯坦迷题及推导过程
    惊闻姑姑家女婿去世,哀叹生命之脆弱,死亡如此接近
    京东自营预售逻辑
    自营SKU绑定逻辑
    自营结算解释&对账逻辑
    CPS逻辑
    京东搜索结果数据异常
    C++静态库中使用_declspec(dllexport) 不能导出函数的问题
    HTTP+SVN访问速度慢的问题
    Python log
  • 原文地址:https://www.cnblogs.com/allen-zm/p/8697194.html
Copyright © 2011-2022 走看看