Название: Разложение числа на два слагаемых Отправлено: CuteBunny от Ноябрь 30, 2012, 13:15 Как получить такую последовательность?
96 = 00+96 97 = 11+86 98 = 22+76 99 = 33+66 100 = 44+56 101 = 55+46 102 = 66+36 103 = 77+26 104 = 88+16 и т.д. допустим у нас на входе 105, получается 99+6 Получается, у меня первое слагаемое - это что-то вроде индекса, второе какое-то смещение, я могу конечно создать массив этих числел и искать по нему, но это не правильно мне кажется, ведь здесь явно как-то хитро кодируются числа?... Название: Re: Разложение числа на два слагаемых Отправлено: Serr500 от Ноябрь 30, 2012, 13:18 For y in [96, 105]
t = (y - 96) * 11, y = t + (y -t) Название: Re: Разложение числа на два слагаемых Отправлено: mutineer от Ноябрь 30, 2012, 13:20 Название: Re: Разложение числа на два слагаемых Отправлено: kambala от Ноябрь 30, 2012, 13:29 это чтобы показать, что формула справедлива. т.е. одно слагаемое равно t, а второе — y-t.
Название: Re: Разложение числа на два слагаемых Отправлено: CuteBunny от Ноябрь 30, 2012, 13:35 For y in [96, 105] t = (y - 96) * 11, y = t + (y -t) Ок, спс!!! Это то, что нужно! Не знаю правильно ли я все делаю, но это мне нужно для работы со сканером штрих-кодов symbol ls2208! Я через WH_KEYBOARD_LL перехватываю коды сканера, так вот он всегда мне отсылает нажатие системных клавиш в виде: к примеру [164][96][101][100] (в десятичном виде) получается это символ из ascii - 6 (0x36), теперь понятно как раскодировать: 164 - это не понятно, что 96 - это число участвует в формуле 101 - его надо разложить по формуле и получим два слагаемых: 55, 46 100 - вычитаем из этого числа второе слагаемое из предыдущего п. получаем 54 (0x36) - т.е. символ ascii 6! Спасибо!:) |