两个极大正整数求和C源程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
#include iostream #include string using namespace std; int main() { string a, b; int *sum; int i, ja, jb; cout 请输入两个数字,每个数字以空格结尾: endl; cin a b; string temp; if ( a.size() b.size() ) // 如果a长度大于b,则交换两字符串 { temp = a; a = b; b = temp; } // 在这后,就肯定是a的长度比b小,所以和的位数最大就是b的位数+1。 sum = new int[b.size()+1]; // 所以给和申请b的位数+1个位置。 sum[0] = 0; char achar[1]; char bchar[1]; int carry = 0; // 记录进位 int sizeDif = b.size() - a.size(); // 记录两个数字的位数差 int count; // 记录和的位数 for ( ja = a.size()-1, jb = b.size()-1; ja = 0; ja--, jb-- ) { achar[0] = a[ja]; bchar[0] = b[jb]; sum[jb+1] = atoi(achar) + atoi(bchar) + carry; carry = 0; // 清空进位标志位 if( sum[jb+1] 9 ) { carry = 1; sum[jb+1] -= 10; // 使之成为一位数,方便输出。 } } for ( i = sizeDif-1; i = 0 ; i-- ) { bchar[0] = b[i]; sum[i+1] = atoi(bchar)+carry; // 转换为数字 carry = 0; // 清空进位标志位 if( sum[i+1] 9 ) { carry = 1; sum[i+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; // 先输出最高位,否则就不输出。 } else { cout ; } for ( i = 1; i = b.size(); i++ ) cout sum[i]; cout endl; cout endl So the result is: ; int remainder; if ( carry == 1 ) // 当和的位数为b的位数+1时 { count = b.size()+1; sum[0] = 1; remainder = count%4; for ( i = 0; i remainder; i++ ) cout sum[i]; if ( remainder == 0 ) { for ( ; remainder 4; remainder++ ) cout sum[remainder]; } for ( i = remainder; i count; i++ ) { if ( (i-remainder) % 4 == 0) cout ,; cout sum[i]; } } else { count = b.size(); remainder = count%4; for ( i = 1; i remainder+1; i++ ) cout sum[i]; for ( i = remainder+1; i = count; i++ ) { if ( (i-remainder-1) % 4 == 0) cout ,; cout sum[i]; } } cout endl; return 0; }

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档