题目描述
将一个数字n(10≤n≤1,000,000,000)拆成左右两部分,将左边的数字逆转后与右边的数字相加,输出求得的和值 。
比如:123456,拆成:321+456=777
比如:147852,拆成:741+852=1593
如果数字的位数是奇数,则右半部分应比左半部少一位
比如:12345,拆成:321+45=366
比如:95078,拆成:059+78=137
提示
输入输出格式
输入格式
一个正整数n,10≤n≤1,000,000,000
输出格式
一个正整数,按照要求求得的结果
输入输出样例
输入
15874
输出
925
n = int(input())
n_str = str(n)
length = len(n_str)
mid = (length + 1) // 2
left = n_str[:mid][::-1]
right = n_str[mid:]
result = int(left) + int(right)
print(result)
思路:
- 从标准输入中读取一个整数,并将其存储在变量
n
中。 - 将整数
n
转换为字符串,并将其存储在变量n_str
中。 - 计算字符串
n_str
的长度,并将结果存储在变量length
中。 - 计算字符串的中间位置,即
(length + 1) // 2
,并将结果存储在变量mid
中。 - 通过切片操作,将字符串
n_str
分为左右两部分,其中左部分是从开头到中间位置的子串,并反转字符串,将结果存储在变量left
中;右部分是从中间位置到结尾的子串,将结果存储在变量right
中。 - 将字符串
left
和right
转换为整数,并将它们相加,将结果存储在变量result
中。 - 将结果
result
输出到标准输出。