SRM504.5 Div1 Easy(250), Div2 Medium(500) TheNumbersWithLuckyLastDigit
1の位が4と7の数を何個足し合わせるかを考える。10以上の位は適当に辻褄を合わせられる。ただし、4と7を加えてnを超える場合は無理。
#include <algorithm> using namespace std; class TheNumbersWithLuckyLastDigit{public: int find( int n ) { int ans = 100; for ( int n4=0; n4<=9; n4++ ) for ( int n7=0; n7<=9; n7++ ) if ( n4+n7 > 0 && (n4*4+n7*7)%10 == n%10 && n4*4+n7*7 <= n ) ans = min( ans, n4+n7 ); return ans<100 ? ans : -1; }};