| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 607 人关注过本帖
标题:我觉得我是真的被输出格式打败了
只看楼主 加入收藏
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
结帖率:96.08%
收藏
已结贴  问题点数:20 回复次数:3 
我觉得我是真的被输出格式打败了
原问题链接:

我的代码
程序代码:
#include<iostream>
#include<string>
using namespace std;

string AplusB(string a,string b);
int main()
{
    int count;
    cin>>count;
    int i=1;
    while (count--)
    {
        string a,b;
        cin>>a>>b;
        cout<<"Case "<<i++<<":"<<endl<<a<<"+"<<b<<"="<<AplusB(a,b);
        if(count)
            cout<<endl<<endl;
        /*else
            cout<<endl;*/
    }

    return 0;
}

string AplusB(string a,string b)
{
    int decadeNum=0;
    int unitNum=0;
    int pA=a.length()-1;
    int pB=b.length()-1;
    string retStr="";
    int num1,num2;
    while ((pA>=0)&&(pB>=0))
    {
        num1=a[pA--]-48;
        num2=b[pB--]-48;
        int tmpNum=num1+num2+decadeNum;
        decadeNum=tmpNum/10;
        unitNum=tmpNum%10;        
        retStr=(char)(unitNum+48)+retStr;
    }

    num1=0;
    while ((pA>=0)||(pB>=0))
    {
        if(pA<0)
        {
            num2=b[pB--]-48;
        }
        else
        {
            num2=a[pA--]-48;
        }
        decadeNum=(num1+num2+decadeNum)/10;
        unitNum=(num1+num2+decadeNum)%10;        
        retStr=(char)(unitNum+48)+retStr;
    }

    return retStr;
}


上面的代码运行结果数据是没有问题的,可能是输出格式的问题,总是Wrong Answer,我调试了各种样式的输出格式,貌似都不对。
大家看看吧,到底该如何输出?
我自我感觉算法的基本原理应该是没啥问题。
搜索更多相关主题的帖子: color count 我是真的 
2015-09-27 03:46
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:0 
原问题链接:http://acm.hdu.

学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2015-09-27 03:46
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:20 
我输入
1
9 9
你的代码输出
Case 1:
9+9=8(这里没有回车)

可见
        cout<<"Case "<<i++<<":"<<endl<<a<<"+"<<b<<"="<<AplusB(a,b); 加号和等号左右应该加空格
        if(count)
            cout<<endl<<endl;
        /*else                // 这个地方不应该注释掉
            cout<<endl;*/


AplusB 函数中,返回前,如果 decadeNum!=0,还得加上
2015-09-28 08:43
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:0 
测试通过的代码:

程序代码:
#include<iostream>
#include<string>
using namespace std;

string AplusB(string a,string b);
int main()
{
    int count;
    cin>>count;
    int i=1;
    while (count--)
    {
        string a,b;
        cin>>a>>b;
        cout<<"Case "<<i++<<":"<<endl<<a<<" + "<<b<<" = "<<AplusB(a,b);
        if(count)
            cout<<endl<<endl;
        else
            cout<<endl;
    }

    return 0;
}

string AplusB(string a,string b)
{
    int decadeNum=0;
    int unitNum=0;
    int pA=a.length()-1;
    int pB=b.length()-1;
    string retStr="";
    int num1,num2;
    while ((pA>=0)&&(pB>=0))
    {
        num1=a[pA--]-48;
        num2=b[pB--]-48;
        int tmpNum=num1+num2+decadeNum;
        decadeNum=tmpNum/10;
        unitNum=tmpNum%10;        
        retStr=(char)(unitNum+48)+retStr;
    }

    num1=0;
    while ((pA>=0)||(pB>=0))
    {
        if(pA<0)
        {
            num2=b[pB--]-48;
        }
        else
        {
            num2=a[pA--]-48;
        }
        int tmpNum=num1+num2+decadeNum;
        decadeNum=tmpNum/10;
        unitNum=tmpNum%10;        
        retStr=(char)(unitNum+48)+retStr;
    }

    //如果有的话,要加上最高的进位
    if(decadeNum)
    {
        retStr=(char)(decadeNum+48)+retStr;
    }

    return retStr;
}

学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2015-09-28 09:12
快速回复:我觉得我是真的被输出格式打败了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038295 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved