编写一个程序,将包含可打印字符(ASCII 20-7E)和n
[2,16]中的整数的字符串作为输入,并对字符串进行以下修改。
- 字符串中的每个字符都将转换为其ASCII码(给出的示例为十六进制,但基数10也可以接受)。
- ASCII码将转换为基数
n
并串联在一起。 - 新字符串将每隔一个字符分割一次。如果有奇数个字符,则最后一个字符将被完全删除。
- 打印的ASCII代码(以16为基数)被转换回其字符,而非打印的ASCII代码被删除。
- 结果字符串被打印出来。
测试用例
输入项
Hello, World!
6
脚步
Hello, World!
48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21
2002453003003031125222330331030024453
20 02 45 30 03 00 30 31 12 52 22 33 03 31 03 00 24 45
该程序的输出为 E001R"31$E
。
这是代码高尔夫球,因此适用标准规则。以字节为单位的最短代码获胜。
此编码算法可用于发送秘密消息!
—
Kritixi Lithos
一定要这样做!
—
anOKsquirrel
@ΚριτικσιΛίθος程序对每个可能的输入字符串均有效,但并非每个输出字符串都是唯一的。例如,在base中
—
Arcturus
7
,字符串J
将通过J
-> 50
-> 101
-> 10
->步骤(no output)
,字符串K
或也将通过L
。
就像@Eridan所说的,这是有损加密,因为奇数序列会丢失最后一个字符。尽管我确定对无知的观察者来说,这可能是一种愚蠢的交流方式:)
—
DoctorHeckle
步骤1令人困惑-无需将char转换为十六进制-在示例中:
—
edc65
H
是ASCII 72(十进制)或48(十六进制),但是我需要的是200(基数6)。在我看来,示例中的所有第2行都是无用的和令人困惑的