цёця Віка ў шоці (ц цёця Віка) October 19, 2009
http://zmila.livejournal.com/627170.html
што такое правільнае рашэніе? гэта калі два ці тры дні думаеш-думаеш, робіш два ці тры варыянты альгарытма па 2-3 экраны, і кожны зь іх працуе 5-10 хвілінаў, і не дае адказу • а потым пішаш правільны альгарытм у 15 радкоў, які рашае гэтую ж задачу за 100 мс • і сцука, правільна зь першай спробы, без адладкі і тэставаньня •
problem76
var memo = {}; function divide( what, max ) {<strong>if</strong> ( what == 0 ) <strong>return</strong> 1; <strong>var</strong> key = what+":"+max, val = memo[key]; <strong>if</strong> ( val ) <strong>return</strong> val; <strong>var</strong> ways = 0; <strong>for</strong> ( <strong>var</strong> curr = Math.min(what, max); curr > 0; curr-- ) ways += divide( what-curr, curr ); memo[ key ] = ways; <strong>return</strong> ways;
}
divide(100, 99);