C++ 大数据相加代码示例 - 两个数相加
{"title": "C++ 大数据相加代码示例 - 两个数相加", "description": "本代码示例展示了使用 C++ 实现大数据相加的方法,通过定义 add 函数来处理两个字符串表示的大数,并逐位相加,处理进位,最终得到相加结果。", "keywords": "C++, 大数据, 相加, 代码示例, 算法, 字符串, 进位, 两个数相加", "content": "以下是一个处理大数据相加的C++代码示例:\n\ncpp\n#include <iostream>\n#include <vector>\n#include <algorithm>\n\nusing namespace std;\n\n// 大数相加函数\nstring add(string num1, string num2) {\n // 保证num1的长度不小于num2\n if (num1.length() < num2.length()) {\n swap(num1, num2);\n }\n \n int carry = 0; // 进位值\n int len1 = num1.length();\n int len2 = num2.length();\n \n // 将num1、num2转换为逆序的字符数组\n reverse(num1.begin(), num1.end());\n reverse(num2.begin(), num2.end());\n \n // 逐位相加\n string sum = \"\\";\n for (int i = 0; i < len1; i++) {\n int digit1 = num1[i] - '0';\n int digit2 = i < len2 ? num2[i] - '0' : 0;\n int temp = digit1 + digit2 + carry;\n \n sum += (temp % 10) + '0'; // 将计算结果添加到sum中\n carry = temp / 10; // 更新进位值\n }\n \n // 处理最高位的进位\n if (carry > 0) {\n sum += carry + '0';\n }\n \n // 将sum逆序得到最终结果\n reverse(sum.begin(), sum.end());\n \n return sum;\n}\n\nint main() {\n string num1, num2;\n cout << \"请输入两个大数:\" << endl;\n cin >> num1 >> num2;\n \n string result = add(num1, num2);\n cout << \"相加结果:\" << result << endl;\n \n return 0;\n}\n\n\n在上述代码中,我们定义了一个add函数来处理大数据相加。在函数中,我们首先比较两个数字的长度,并保证num1的长度不小于num2。然后,我们将num1和num2转换为逆序的字符数组,并使用一个循环逐位相加。在每一位的相加过程中,我们还需要考虑进位的情况。最后,我们将计算得到的结果逆序输出。在main函数中,我们接受用户输入的两个大数,并调用add函数进行相加并输出结果。\n\n
原文地址: https://www.cveoy.top/t/topic/pZtW 著作权归作者所有。请勿转载和采集!