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放在个位。

  • 相关阅读:
    The Best Seat in ACM Contest
    确定比赛名次
    Red and Black
    Can you find it?
    胜利大逃亡
    Reward
    DXUT编译指南(转)
    逐顶点和逐像素光照
    转战DX
    hlsl之ambient
  • 原文地址:https://www.cnblogs.com/allen-zm/p/8697194.html
Copyright © 2011-2022 走看看