许多实用和深奥的编程语言都有函数、方法等,可以将给定的字符串转换为十进制数。这一过程可能是这样运作的:
让我们对字符串"109"
执行此过程:
1
的ASCII值为49。减去48,得到1,把输出乘以10,得到0。最后,我们将1与0相加,得到一个。0
's的ASCII值(48)减去48,得到0。我们乘以1乘以10,得到10。当我们加0时,什么都不会发生。9
's的ASCII值(57)乘以48,得到9。我们乘以10,得到100。我们把9乘以100,得到109。在那里,我们成功地将"109"
转换为109个!这也一样简单!
问题是,当转换字符串具有非数字字符时,大多数语言都不喜欢它( ASCII值不包括在48-57范围内的字符)。他们很可能会向我们扔一些令人讨厌的错误或异常。
我们还是忽略它吧!
给定来自STDIN的可打印字符串(可以假设为1 ≤ \text{Input Length} ≤ 10),实现一个程序或函数,按照上述步骤将其糟糕地转换为整数,并输出或返回它。
字符串可以包含空格字符(空格、制表符和行提要)。
另一个例子是字符串"Hi!"
:
H
的ASCII值为72: 72 - 48 = 24
0 * 10 = 0
0 + 24 = 24
i
的ASCII值为105: 105 - 48 = 57
24 * 10 = 240
240 + 57 = 297.
!
的ASCII值为33: 33 - 48 = -15
297 * 10 = 2970
2970 + -15 = 2955
这意味着转换为整数的"Hi!"
是2955!
适用标准I/O规则。
注意:如果你的语言不支持输入,欢迎在你的答案中告诉我(你可以把“输入”字符串放在你的源代码中)!
STDIN Output
"123456789" -> 123456789
"0123456789" -> 123456789
"-12345" -> -287655
"Lorem" -> 350191
"Ipsum" -> 321451
"AAAAAAAA" -> 188888887
" " -> -177777776
"A" -> 17
" " -> -16
"
" -> -38
标准密码-高尔夫规则适用!
发布于 2020-10-11 14:04:43
发布于 2020-10-12 16:14:11
https://codegolf.stackexchange.com/questions/212305
复制相似问题