两个极大正整数求和C++源程序_第1页
两个极大正整数求和C++源程序_第2页
两个极大正整数求和C++源程序_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include #include using namespace std;int main() string a, b;int *sum;int i, ja, jb;cout 请输入两个数字,每个数字以空格结尾: a b;string temp;if ( a.size() b.size() ) / 如果a长度大于b,则交换两字符串temp = a; a = b;b = temp;/ 在这后,就肯定是a的长度比b小,所以和的位数最大就是b的位数+1。sum = new intb.size()+1; / 所以给和申请b的位数+1个位置。sum0 = 0;char achar1;char bchar1;int carry = 0; / 记录进位int sizeDif = b.size() - a.size(); / 记录两个数字的位数差int count; / 记录和的位数for ( ja = a.size()-1, jb = b.size()-1; ja = 0; ja-, jb- )achar0 = aja;bchar0 = bjb;sumjb+1 = atoi(achar) + atoi(bchar) + carry;carry = 0; / 清空进位标志位if( sumjb+1 9 )carry = 1;sumjb+1 -= 10; / 使之成为一位数,方便输出。for ( i = sizeDif-1; i = 0 ; i- )bchar0 = bi;sumi+1 = atoi(bchar)+carry; / 转换为数字carry = 0; / 清空进位标志位if( sumi+1 9 )carry = 1;sumi+1 -= 10; / 使之成为一位数,方便输出。cout endl The process is: endl;for ( i = 0; i = sizeDif; i+ )cout ;cout a endl;cout + b endl;for ( i = 0; i = b.size(); i+ )cout -;cout endl;if ( carry = 1 ) / 当和的位数为b的位数+1时cout 1; / 先输出最高位,否则就不输出。elsecout ;for ( i = 1; i = b.size(); i+ )cout sumi;cout endl;cout endl So the result is: ;int remainder;if ( carry = 1 ) / 当和的位数为b的位数+1时count = b.size()+1;sum0 = 1;remainder = count%4;for ( i = 0; i remainder; i+ )cout sumi;if ( remainder = 0 )for ( ; remainder 4; remainder+ )cout sumremainder;for ( i = remainder; i count; i+ )if ( (i-remainder) % 4 = 0)cout ,;cout sumi;else count = b.size();remainder = count%4;for ( i = 1; i remainder+1; i+ )cout sumi;for ( i = remainder+1; i = co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论