C++ 大整数加法

C++ 大整数加法功能输入两个大整数 100 位以内 将结果输出测试用例 1 请输入一个大整数 A 请输入一个大整数 B 00005 结果 请按任意键继续 测试用例 2 代码理论上 位数可以无限 实际使用时受内存空间的限制 数组不能过大 10000 可能会产生段错误 include iostream include string string iostream

功能

输入两个大整数(100位以内),将结果输出

测试用例1

测试用例2
在这里插入图片描述

代码

理论上,位数可以无限,实际使用时受内存空间的限制,数组不能过大(10000+可能会产生段错误)

#include 
     #include 
     using namespace std; int main() { 
    int A[100] = { 
    0 }; int B[100] = { 
    0 }; int jin[101] = { 
    0 }; int res[101] = { 
    0 }; //输入 string strA; string strB; cout << "请输入一个大整数A:"; cin >> strA; cout << "请输入一个大整数B:"; cin >> strB; //分离每一位 int maxLength = strA.length() > strB.length() ? strA.length() : strB.length(); int i; //A for (i = 0; i < strA.length(); i++) { 
    A[strA.length() - i - 1] = (int)(strA[i] - '0'); } //B for (i = 0; i < strB.length(); i++) { 
    B[strB.length() - i - 1] = (int)(strB[i] - '0'); } //相加 for (i = 0; i <= maxLength; i++) { 
    res[i] = (A[i] + B[i] + jin[i]) % 10; //当前位结果 jin[i + 1] = (A[i] + B[i] + jin[i]) / 10; //下一位进位 } //输出 cout << "结果:"; if (res[maxLength] != 0)cout << res[maxLength];//是否输出最高位 for (i = maxLength - 1; i >= 0; i--) { 
    cout << res[i]; } cout << endl; system("pause"); } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177930.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午6:24
下一篇 2026年3月26日 下午6:25


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号