整除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

相關文章
相關標籤/搜索