功能
输入两个大整数(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
