
题目概述给定n根木棍一直每个数字需要用多少木棍求用完木棍可以拼出的正整数最小是多少若无法用完木棍则输出-1。思路拆分首先相信大家都能想到一点:既然数要越小那拼每个数字用的小木棍就要越大。经过我们详细的数数得出了一个结论拼“8”这个数用的小木棍数最多。所以我们尽量的去拼‘8’然后处理余数即可。但由于某些情况下可能不用把木棍全部用来拼8所以我们这时就要去推余数为每个数字时的最优情况。具体如下表所以此处代码就很简单了。AC代码#includebits/stdc.husingnamespacestd;intt;intmain(){cint;while(t--){intn;cinn;if(n%70){for(inti1;in/7;i)cout8;coutendl;}elseif(n%71){if(n1){cout-1endl;continue;}cout10;for(inti1;in/7-1;i)cout8;coutendl;}elseif(n%72){cout1;for(inti1;in/7;i)cout8;coutendl;}elseif(n%73){if(n3){cout7endl;continue;}intxn/7;if(x1)cout22endl;else{x-2;cout200;for(inti1;ix;i)cout8;coutendl;}}elseif(n%74){if(n4){cout4endl;continue;}cout20;for(inti1;in/7;i)cout8;coutendl;}elseif(n%75){cout2;for(inti1;in/7;i)cout8;coutendl;}elseif(n%76){cout6;if(n6){coutendl;continue;}for(inti1;in/7;i)cout8;coutendl;}}return0;}