20 楼
wangfangbob [专家分:380] 发布于 2007-05-29 11:04:00
头文件:include <math.h>
只用里面的log2函数,如果没有,请用其他求以2为底的对数的函数代替
namespace wangfangbob
{
int solve( int m )
{
static int base [30][15] = { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 4, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 5, 11, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 6, 16, 26, 31, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 7, 22, 42, 57, 63, 64, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 8, 29, 64, 99, 120, 127, 128, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 9, 37, 93, 163, 219, 247, 255, 256, 0, 0, 0, 0, 0, 0 },
{ 1, 10, 46, 130, 256, 382, 466, 502, 511, 512, 0, 0, 0, 0, 0 },
{ 1, 11, 56, 176, 386, 638, 848, 968, 1013, 1023, 1024, 0, 0, 0, 0 },
{ 1, 12, 67, 232, 562, 1024, 1486, 1816, 1981, 2036, 2047, 2048, 0, 0, 0 },
{ 1, 13, 79, 299, 794, 1586, 2510, 3302, 3797, 4017, 4083, 4095, 4096, 0, 0 },
{ 1, 14, 92, 378, 1093, 2380, 4096, 5812, 7099, 7814, 8100, 8178, 8191, 8192, 0 },
{ 1, 15, 106, 470, 1471, 3473, 6476, 9908, 12911, 14913, 15914, 16278, 16369, 16383, 16384 },
{ 1, 16, 121, 576, 1941, 4944, 9949, 16384, 22819, 27824, 30827, 32192, 32647, 32752, 32767 },
{ 1, 17, 137, 697, 2517, 6885, 14893, 26333, 39203, 50643, 58651, 63019, 64839, 65399, 65519 },
{ 1, 18, 154, 834, 3214, 9402, 21778, 41226, 65536, 89846, 109294, 121670, 127858, 130238, 130918 },
{ 1, 19, 172, 988, 4048, 12616, 31180, 63004, 106762, 155382, 199140, 230964, 249528, 258096, 261156 },
{ 1, 20, 191, 1160, 5036, 16664, 43796, 94184, 169766, 262144, 354522, 430104, 480492, 507624, 519252 },
{ 1, 21, 211, 1351, 6196, 21700, 60460, 137980, 263950, 431910, 616666, 784626, 910596, 988116, 1026876 },
{ 1, 22, 232, 1562, 7547, 27896, 82160, 198440, 401930, 695860, 1048576, 1401292, 1695222, 1898712, 2014992 },
{ 1, 23, 254, 1794, 9109, 35443, 110056, 280600, 600370, 1097790, 1744436, 2449868, 3096514, 3593934, 3913704 },
{ 1, 24, 277, 2048, 10903, 44552, 145499, 390656, 880970, 1698160, 2842226, 4194304, 5546382, 6690448, 7507638 },
{ 1, 25, 301, 2325, 12951, 55455, 190051, 536155, 1271626, 2579130, 4540386, 7036530, 9740686, 12236830, 14198086 },
{ 1, 26, 326, 2626, 15276, 68406, 245506, 726206, 1807781, 3850756, 7119516, 11576916, 16777216, 21977516, 26434916 },
{ 1, 27, 352, 2952, 17902, 83682, 313912, 971712, 2533987, 5658537, 10970272, 18696432, 28354132, 38754732, 48412432 },
{ 1, 28, 379, 3304, 20854, 101584, 397594, 1285624, 3505699, 8192524, 16628809, 29666704, 47050564, 67108864, 87167164 },
{ 1, 29, 407, 3683, 24158, 122438, 499178, 1683218, 4791323, 11698223, 24821333, 46295513, 76717268, 114159428, 154276028 },
{ 1, 30, 436, 4090, 27841, 146596, 621616, 2182396, 6474541, 16489546, 36519556, 71116846, 123012781, 190876696, 268435456 } };