问题 5309 --变长编码(ccode)

5309: 变长编码(ccode)

题目描述

热爱学习的小A发现了一种正整数的变长编码方式。这种编码方式的规则如下: 1. 对于给定的正整数,首先将其表达为二进制形式。 例如,$0_{(10)}=0_{(2)}$ , $926_{(10)}=1110011110_{(2)}$。 2. 将二进制数从低位到高位切分成每组7位,不足7位的在高位用0填补。 例如,$0_{(2)}$变为$0000000$一组,$1110011110_{(2)}$ 变为$0000111$和$0011110$两组。 3. 从代表高位的组开始,为其加入最高位。如果这组是第1组,则在最高位填上0,否则在最高位填上1。于是,0的变长编码为$00000000$一个字节, $926$的变长编码为$00000111$和 $10011110$两个字节。 4. 将添完最高位的每一组数字以2位的16进制表示进行输出,其中,A-F使用大写字母表示),两个字节间以空格分隔。 请你编程找到一个正整数的变长编码。

输入

输入第一行,包含一个正整数N。约定 $ 0 \le N \le 10^{18}$。

输出

输出一行,输出N对应的变长编码的每个字节,每个字节均以2位十六进制表示,两个字节间以空格分隔。

样例输入输出

输入#1 复制
926
输出#1 复制
07 9E
输入#2 复制
987654321012345678
输出#2 复制
0D DA B6 CB F4 A6 C8 96 CE

提示

序号 标题 作者 发表时间 费用 订购数 操作