HDU1002 A + B Problem II(修正版)

最近又开始做ACM题目了,昨天无意中翻阅自己写的一些blog,07年写的一篇blog:http://www.cnblogs.com/phinecos/archive/2007/12/22/1011028.html,发现评论中有朋友报了一个bug,随手调试了下程序,发现错误原因在于少了“++”,不过那代码也是AC了的,这说明OJ的测试数据有问题。特此修正代码如下:

复制代码
#include <iostream> 
#include 
<string> 
using namespace std; 

void Add(string a,string b,char sum[],int& count) 
{
//大数加法
    int len1 = a.length();//数a的长度
    int len2 = b.length();//数b的长度
    int i = len1-1,j = len2-1,temp = 0,carryIn = 0;//初始进位为
    count = 0
    
//从最后一位开始做加法
    while(i>=0&&j>=0
    { 
        temp 
= a[i]-'0'+b[j]-'0'+carryIn;//计算当前位
        sum[count++= temp%10+'0'
        carryIn 
= temp/10;//计算进位
        --i; 
        
--j; 
    } 
    
//第一个数还有剩余
    if(i>=0
    { 
        
//利用进位继续做
        while(i>=0
        { 
            temp 
= a[i]-'0'+carryIn; 
            sum[count
++= temp%10+'0'
            carryIn 
= temp/10
            
--i; 
        } 
    } 
    
//第二个数还有剩余
    if(j>=0
    { 
        
while(j>=0
        { 
            temp 
= b[j]-'0'+carryIn; 
            sum[count
++= temp%10+'0'
            carryIn 
= temp/10
            
--j; 
        } 
    } 
    
//最高位特殊考虑下
    if(carryIn>0
    { 
        sum[count
++= '1'
    } 


void reversePrint(char arr[],int len) 
{
//逆向输出
    for(int i=len-1;i>=0;--i) 
    {
        cout
<<arr[i]; 
    }
    cout
<<endl; 


int main() 

    
string a,b; 
    
char sum[2000];//
    memset(sum,'0',2000); 
    
int nCount = 0
    
int caseNum,curCase=0
    cin
>>caseNum; 
    
do 
    { 
        curCase
++
        cin
>>a>>b; 
        Add(a,b,sum,nCount); 
        cout
<<"Case "<<curCase<<":"<<endl; 
        cout
<<a<<" + "<<b<<" = "
        reversePrint(sum,nCount); 
        
if(curCase<caseNum) 
        {
            cout
<<endl; 
        }
    }
while(curCase<caseNum); 
    
return 0


复制代码

posted on   Phinecos(洞庭散人)  阅读(1662)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述

导航

统计

点击右上角即可分享
微信分享提示