题目描述
热爱学习的小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位十六进制表示,两个字节间以空格分隔。
样例输入输出
输入#2
复制
987654321012345678
输出#2
复制
0D DA B6 CB F4 A6 C8 96 CE
提示