21xrx.com
2024-12-27 22:09:16 Friday
登录
文章检索 我的文章 写文章
C++实现正整数相加
2023-07-04 21:41:16 深夜i     --     --
C++ 实现 正整数 相加

正整数相加是计算机编程中常见的一种算法,而C++作为一种高级编程语言,也可以用来实现正整数相加。本文将介绍C++实现正整数相加的方法,以及其基本实现原理。

C++实现正整数相加

在C++中,可以使用long long类型进行两个正整数相加。long long类型是一种整数类型,其范围为-2的63次方到2的63次方-1。因此,它可以存储相当大的正整数值。

例如,下面的代码可以计算两个正整数的和:


#include <iostream>

using namespace std;

int main() {

  long long a, b;

  cin >> a >> b;

  cout << a + b << endl;

  return 0;

}

在这个例子中,我们首先声明了两个long long类型的变量a和b。随后,我们从控制台获取了两个正整数的值,并计算它们的和。最后,我们将它们的和输出到控制台。

基本实现原理

C++实现正整数相加的基本实现原理是将两个正整数的每一位相加,并将进位记录下来。下面是一个具体的例子:

346 = 100 + 40 + 6

+ 75 = 70 + 5

------------

 421 = 100 + 110 + 11

在这个例子中,我们首先将346和75按位相加。由于6和5的和为11,我们需要记录下来进位1,并将1加到下一位相加的结果中。然后,我们得到了最终的结果421。

在C++中,我们可以用循环来实现这个过程,具体代码如下:


#include <iostream>

using namespace std;

int main() {

  string a, b;

  cin >> a >> b;

  int n = max(a.size(), b.size()), carry = 0;

  string res;

  for (int i = 0; i < n; i++) {

    int ai = i < a.size() ? a[a.size() - 1 - i] - '0' : 0;

    int bi = i < b.size() ? b[b.size() - 1 - i] - '0' : 0;

    int sum = ai + bi + carry;

    carry = sum / 10;

    sum %= 10;

    res += to_string(sum);

  }

  if (carry) res += to_string(carry);

  reverse(res.begin(), res.end());

  cout << res << endl;

  return 0;

}

在这个例子中,我们首先从控制台获取了两个正整数a和b,并计算它们的和。然后,我们定义了一个变量n来保存a和b的最大长度,并定义了一个进位carry变量。接下来,我们用循环将a和b的每一位相加,并将进位记录下来。最后,我们将结果倒序输出到控制台。

总结

C++可以方便地实现正整数相加。我们可以用long long类型直接进行两个正整数的相加,或者用循环将两个正整数的每一位相加并记录进位,从而得到最终的相加结果。希望本文对大家C++实现正整数相加有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复