c++ - 将两个阵列与结转相加
问题描述
问题是重载加法运算符以将两个数组相加。对我来说,问题是处理结转,如果两个数字加起来大于 10,则需要将 1 结转到下一个加法。我不太了解结转背后的数学/逻辑。数组可以是任何大小,最多 50 个元素。任何帮助,将不胜感激。
bigint operator+(bigint lhs,const bigint & rhs){
int carryover = 0;
for(int i = 0; i < bigint::MAX_DIGITS;++i){
int temp = lhs.digits[i] + rhs.digits[i] + carryover;
if(lhs.digits[i] + rhs.digits[i] >= 10){
carryover = 1;
carryover = temp / 10;
lhs.digits[i] = temp % 10;
}
lhs.digits[i] = lhs.digits[i] + rhs.digits[i] + carryover;
}
return lhs;
}
解决方案
推荐阅读
- python - 如果关键字不失败,则重复执行关键字固定时间而不失败
- azure - 从 Azure Functions 连接到 tcp 套接字时出错
- c# - 警告 MSB3290:包装器组件失败
- python - SystemError:未加载父模块“setuptools”,无法执行相对导入
- python - charm.pool.map & tqdm:获取进度条
- java - 如何处理平面图中的异常 - 反应弹簧
- python - 尝试创建一个函数,该函数根据字典中的“整数”值返回“字符串”键
- python - 如何使用 PIL 绘制箭头?
- python - Django ModelForm 类:删除外键下拉菜单约束
- amazon-web-services - API 创新不会触发 AWS API Gateway 的基于自定义请求的 lambda 授权程序