超长整数加法计算
来源:互联网 发布:新西兰网络无信号 编辑:程序博客网 时间:2024/04/29 15:25
对于long long类型也存放不下的超长整数,可以使用字符串模拟的办法来对其进行运算的模拟。此处仅做加法的示范,其他运算思想类似。
每四位视为一个整数,进位等情况对下一次的计算考虑影响。
#include<iostream>using namespace std;#define MAX_LEN 50int nNumA[MAX_LEN];int nLenA = 0;int nNumB[MAX_LEN];int nLenB = 0;int nResult[2*MAX_LEN];int nLenR = 0;void CharToInt(char *szSource, int *nDes, int *Len){int j = 0;int nDesLoc = 0;int nTotalNum = 0;int thisNum = 0; //当前char的值int nHead = strlen(szSource) % 4;if (nHead != 0){for (int k = 0; k< nHead; k++){thisNum = (int)(szSource[k] - '0') + 0;nTotalNum = nTotalNum*10 + thisNum;j++;}nDes[nDesLoc] = nTotalNum; //数组开头不足四位nTotalNum = 0;j = 0;nDesLoc++;}for (int i= nHead; i<strlen(szSource); i++){if (j == 4){nDes[nDesLoc] = nTotalNum; //每一个int数组为上存储四个数字nTotalNum = 0;j = 0;nDesLoc++;}thisNum = (int)(szSource[i] - '0') + 0;nTotalNum = nTotalNum*10 + thisNum;j++;}if (nTotalNum != 0){nDes[nDesLoc] = nTotalNum; nTotalNum = 0;j = 0;nDesLoc++;}*Len = nDesLoc;cout<<"长度为"<<nDesLoc<<endl;for (int j = 0; j< nDesLoc; j++){cout<<nDes[j]<<" ";}cout<<endl;}void LenAdd(){int ALen = nLenA;int BLen = nLenB;int CStart = 0;int nFlag = 0;while (ALen != 0 && BLen != 0){nResult[CStart] = (nNumA[ALen-1] + nNumB[BLen-1] + nFlag) % 9999;nFlag = (nNumA[ALen-1] + nNumB[BLen-1] + nFlag) / 9999;CStart++;ALen--;BLen--;}while (ALen > 0){nResult[CStart] = (nNumA[ALen-1] + nFlag) % 9999;nFlag = (nNumA[ALen-1] + nFlag) / 9999;CStart++;ALen--;}while (BLen > 0){nResult[CStart] = (nNumB[BLen-1] + nFlag) % 9999;nFlag = (nNumB[BLen-1] + nFlag) / 9999;CStart++;BLen--;}nLenR = CStart;cout<<"相加结果为:"<<endl;for (int i = CStart-1; i >-1 ; i--){cout<<nResult[i]<<" ";}cout<<endl;}int main(){char szInput[100];cout<<"输入第一个操作数"<<endl;cin>>szInput;CharToInt(szInput, nNumA, &nLenA);cout<<"输入第二个操作数"<<endl;cin>>szInput;CharToInt(szInput,nNumB, &nLenB);LenAdd();system("pause");}
0 0
- 超长整数加法计算
- 大整数加法计算
- 大一下期末考试 : 大数存储 超长整数的加法
- Algorithm Gossip: 超长整数计算(大数计算)
- 【高精度计算 01】 大整数加法
- C 大整数加法计算实现
- 超长正整数的加法
- 超长正整数的加法
- 超长精度加法
- 加法函数 超长
- 两个超长正整数的加法
- 超长整数的加减法
- 超长整数相加
- OJ------超长整数相加
- 整数加法
- 整数加法
- 大整数加法计算思路与算法实现
- 计算两个1000位大整数的加法
- 更新xcode6 运行报错 Command /usr/bin/codesign failed with exit code 1
- [LeetCode] Path Sum II
- MOOC学习
- 依赖JQuery库-->插件依赖库引入顺序
- 图片处理笔记 Photoshop 去除水印、背景色 、合并图
- 超长整数加法计算
- opengl
- ubuntu14.04 配置cuda
- QML和C++实现交互
- mac os X中关于dayone缓存的实际文件位置
- 游戏多服务器架构
- JAVA 程序设计员题目
- Listview 异步加载图片 快速滑动发生图片错误的解决办法 复用convertview
- Closest Common Ancestors+poj+最近公共祖先