首页 > 解决方案 > 将两个阵列与结转相加

问题描述

问题是重载加法运算符以将两个数组相加。对我来说,问题是处理结转,如果两个数字加起来大于 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;
}

标签: c++

解决方案


推荐阅读