【发布时间】:2020-01-03 18:52:13
【问题描述】:
我面临以下问题。:
我有一个 6 位正整数值,例如 120117,我希望能够将前两位数(在本例中为 12)更新为:
- 如果该两位数小于或等于 20,则为 50
- 如果该两位数大于 20,则为 60。
所以上面例子的最终输出是500117。
所有输入都是正的 6 位整数。
我知道我可以将此整数转换为字符串,然后使用.substr 在所需位置插入 50 或 60,但我不想使用任何与字符串相关的操作。我只想使用算术运算。
我真的不知道该怎么做。任何帮助将不胜感激。
【问题讨论】:
-
提示:使用数学。
-
@JesperJuhl 我知道这与一些数学逻辑有关,但我无法弄清楚。非常感谢您的帮助。
-
我将始终输入长度为 6 位且只有正数的输入。 - ...您为什么不一开始就告诉呢?这使它变得微不足道。
-
@Angelina 他的意思是 1) 找到位数(称为 N),2)找到 10^(N-2)(称为 X),3)将原始数字除以 X . 总而言之,这将为您提供一个以 10 为底的 2 位整数,代表前两位数。但是,是的,J. Doe 是对的,如果您总是有 6 位输入,那么只需除以 10000 即可确定前两位数字是小于 20 还是大于 20。
-
@Angelina -- 什么是
120117 / 10000并删除小数点?看到什么给你提示的东西?