输入两个正整数a,b,计算两个正整数各对应位乘积之和. 例如a=1123,b=405, 输出为19(1*0+1*4+2*0+3*5=19). 如果a,b不是正整数,输出error。
时间: 2024-03-07 08:46:50 浏览: 82
好的,我明白了。以下是代码实现:
```python
def multiply_sum(a, b):
if a <= 0 or b <= 0:
return "error"
a_str, b_str = str(a), str(b)
sum = 0
for i in range(len(a_str)):
if not b_str or not a_str:
break
a_digit, b_digit = int(a_str[i]), int(b_str[i])
sum += a_digit * b_digit
b_str = b_str[1:]
return sum
```
你可以输入两个正整数让我来测试一下这个函数。
相关问题
python 输入两个正整数a,b,计算两个正整数各对应位乘积之和. 例如a=1123,b=405, 输出为19(1*0+1*4+2*0+3*5=19). 如果a,b不是正整数,输出error。
你可以参考下面的代码实现:
```python
a, b = input().split()
if not a.isdigit() or not b.isdigit():
print("error")
else:
res = 0
for x, y in zip(a, b):
res += int(x) * int(y)
print(res)
```
首先使用 `split()` 方法获取输入的两个正整数。然后使用 `isdigit()` 方法判断输入的参数是否都是正整数,如果不是则输出 `error`。如果都是正整数,则使用 `zip()` 函数遍历两个正整数的对应位置,并计算乘积之和,最后输出结果。
问题描述】输入两个正整数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的各个位,计算对应位的乘积之和,并返回结果。
阅读全文
相关推荐















