设计一个程序实现两个任意长的整数的求和运算.设计一个实现任意长的整数进行加法运算的演示程序.要求输入和输出每四位一组,组间用逗号隔开.如:1,0000,0000,0000,0000.程序代码不要有错、
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/21 18:53:06
设计一个程序实现两个任意长的整数的求和运算.设计一个实现任意长的整数进行加法运算的演示程序.要求输入和输出每四位一组,组间用逗号隔开.如:1,0000,0000,0000,0000.程序代码不要有错、
设计一个程序实现两个任意长的整数的求和运算.
设计一个实现任意长的整数进行加法运算的演示程序.要求输入和输出每四位一组,组间用逗号隔开.如:1,0000,0000,0000,0000.
程序代码不要有错、因为我不会改、最好是直接能让我黏贴就好.
设计一个程序实现两个任意长的整数的求和运算.设计一个实现任意长的整数进行加法运算的演示程序.要求输入和输出每四位一组,组间用逗号隔开.如:1,0000,0000,0000,0000.程序代码不要有错、
#include
#include
using namespace std;
int main()
{
\x09string a,b;
\x09int *sum;
\x09int i,ja,jb;
\x09cout a >> b;
\x09string temp;
\x09if ( a.size() > b.size() ) // 如果a长度大于b,则交换两字符串
\x09{
\x09\x09temp = a;
\x09\x09a = b;
\x09\x09b = temp;
\x09}
\x09// 在这后,就肯定是a的长度比b小,所以和的位数最大就是b的位数+1.
\x09sum = new int[b.size()+1]; // 所以给和申请b的位数+1个位置.
\x09sum[0] = 0;
\x09char achar[1];
\x09char bchar[1];
\x09int carry = 0; // 记录进位
\x09int sizeDif = b.size() - a.size(); // 记录两个数字的位数差
\x09int count; // 记录和的位数
\x09for ( ja = a.size()-1,jb = b.size()-1; ja >= 0; ja--,jb-- )
\x09{
\x09\x09achar[0] = a[ja];
\x09\x09bchar[0] = b[jb];
\x09\x09sum[jb+1] = atoi(achar) + atoi(bchar) + carry;
\x09\x09carry = 0; // 清空进位标志位
\x09\x09if( sum[jb+1] > 9 )
\x09\x09{
\x09\x09\x09carry = 1;
\x09\x09\x09sum[jb+1] -= 10; // 使之成为一位数,方便输出.
\x09\x09}
\x09}
\x09for ( i = sizeDif-1; i >= 0 ; i-- )
\x09{
\x09\x09bchar[0] = b[i];
\x09\x09sum[i+1] = atoi(bchar); // 转换为数字
\x09\x09carry = 0; // 清空进位标志位
\x09\x09if( sum[i+1] > 9 )
\x09\x09{
\x09\x09\x09carry = 1;
\x09\x09\x09sum[i+1] -= 10; // 使之成为一位数,方便输出.
\x09\x09}
\x09}
\x09cout