You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术问询:读取数字后,求删除末位与倒数第二位后两数的乘积

解决数字提取与乘积计算问题

问题核心

你需要实现的是:读取数字后,分别生成删除最后一位和删除倒数第二位的两个新数字,再计算它们的乘积。比如输入4358,要得到435(删最后一位)和438(删倒数第二位),最终乘积为190530。

两种可行解决方案

方案1:字符串切片法(直观不易出错)

利用字符串的切片操作可以轻松定位并修改数字的某一位,适合大多数场景:

# 读取输入(可直接读字符串,或转成字符串)
input_num = input("输入数字:")
num_str = str(input_num)

# 生成删除最后一位的数字
num_remove_last = int(num_str[:-1])
# 生成删除倒数第二位的数字:取前n-2位 + 最后一位字符
num_remove_second_last = int(num_str[:-2] + num_str[-1])

# 计算乘积
result = num_remove_last * num_remove_second_last
print(result)
  • 示例运行:输入4358时,num_str[:-1]是"435",num_str[:-2]+num_str[-1]是"43"+"8"即"438",相乘后得到190530。

方案2:纯数学运算(无需字符串转换)

通过取整和取余操作拆分数字,适合对数字操作更熟悉的场景:

input_num = int(input("输入数字:"))

# 删除最后一位:整除10即可
num_remove_last = input_num // 10
# 提取最后一位数字
last_digit = input_num % 10
# 提取去掉最后两位的高位部分
high_part = input_num // 100
# 删除倒数第二位:高位*10 + 最后一位
num_remove_second_last = high_part * 10 + last_digit

# 计算乘积
result = num_remove_last * num_remove_second_last
print(result)
  • 示例运行:输入4358时,input_num//10=435,last_digit=8,high_part=43,num_remove_second_last=43*10+8=438,乘积正确。

你可能踩的坑

  • 错误地将“删除倒数第二位”理解为input_num//100(这样得到的是43,而非438),这是最常见的失误。
  • 处理位数较少的数字时(比如3位数,输入123),两种方案依然有效:删最后一位得12,删倒数第二位得13,乘积156。

内容的提问来源于stack exchange,提问作者Maitree Oza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 06:35:16