【问题描述】输入两个正整数a,b,计算两个正整数各对应位乘积之和. 例如a=1123,b=405, 输出为19(1*0+1*4+2*0+3*5=19). 如果a,b不是正整数,输出error。 【输入形式】一行两个正整数,以1个空格分隔 【输出形式】一个正整数或者error 【样例输入】1123 405 【样例输出】19 【样例输入】-1123 405.6 【样例输出】error 【样例输入】1#123 405 【样例输出】error
时间: 2023-11-13 12:29:02 浏览: 283
以下是Python实现的代码:
```python
a, b = input().split()
if not a.isdigit() or not b.isdigit():
print("error")
else:
sum = 0
for i in range(min(len(a), len(b))):
sum += int(a[i]) * int(b[i])
print(sum)
```
解释如下:
- 首先读入两个数,使用`split()`函数将其拆分为字符串列表。
- 然后判断两个字符串是否都是正整数,如果不是,则输出`error`。
- 如果都是正整数,就定义一个变量`sum`来保存乘积之和。接下来使用`range()`函数来生成一个长度为两个数中较短字符串长度的数字序列,依次遍历这个序列。在遍历过程中,将两个字符串对应位上的数字相乘,并加到`sum`中。
- 最后输出`sum`的值。
相关问题
问题描述】输入两个正整数a,b,计算两个正整数各对应位乘积之和. 例如a=1123,b=405, 输出为19(1*0+1*4+2*0+3*5=19). 如果a,b不是正整数,输出error。
好的,下面是代码实现:
```python
def multiply_sum(a, b):
if not isinstance(a, int) or not isinstance(b, int) or a <= 0 or b <= 0:
return "error"
else:
sum = 0
while a > 0 and b > 0:
sum += (a % 10) * (b % 10)
a //= 10
b //= 10
return sum
```
这个函数首先判断a和b是否为正整数,如果不是则返回"error"。否则,使用while循环遍历a和b的各个位,计算对应位的乘积之和,并返回结果。
用python编写:【问题描述】输入两个正整数a,b,计算两个正整数各对应位乘积之和. 例如a=1123,b=405, 输出为19(1*0+1*4+2*0+3*5=19). 如果a,b不是正整数,输出error。
好的,以下是用 Python 编写的程序:
```python
a = input("请输入第一个正整数:")
b = input("请输入第二个正整数:")
# 判断输入的是否为正整数
if not a.isdigit() or not b.isdigit():
print("error")
else:
# 将输入的字符串转换为数字列表
a = list(map(int, a))
b = list(map(int, b))
# 对应位相乘并求和
res = sum([a[i] * b[i] for i in range(min(len(a), len(b)))])
print(res)
```
你可以在命令行或者 Python 编辑器中运行这段代码。
阅读全文