随笔 - 87  文章 - 279  trackbacks - 0
<2007年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

潜心看书研究!

常用链接

留言簿(19)

随笔分类(81)

文章分类(89)

相册

ACM OJ

My friends

搜索

  •  

积分与排名

  • 积分 - 214423
  • 排名 - 116

最新评论

阅读排行榜

评论排行榜

原题:

Calculate a + b
 
Input

The input will consist of a series of pairs of integers a and b,
separated by a space, one pair of integers per line. 

Output

For each pair of input integers a and b you should output the sum
 of a and b in one line,and with one line of utput for each line in input.

Sample Input
1 5

Sample Output
6

Hint
Use + operator

#include<iostream>
#include
<string>
using namespace std;


int main()
{
    
string a,b;
    
char *= NULL;
    
long a_len = 0,b_len = 0,c_len=0,min_len;
    
int one_bit = 0;
    
bool flag = false;
    
while(cin>>a>>b)
    
{
        
if (a[0]!='-'&&b[0]!='-')
        
{
            a_len 
= a.length();
            b_len 
= b.length();
            c_len 
= (a_len>b_len?a_len:b_len)+1;
            min_len 
= a_len<b_len?a_len:b_len;
            c 
= new char[c_len+1];
            c[c_len] 
= '\0';
            c[
0= 'A';
            
while(min_len>0)
            
{
                one_bit
=int(a[a_len-1])+int(b[b_len-1])-96;
                
if(flag)
                    one_bit
++;
                
if(one_bit>9)
                
{
                    one_bit 
-= 10;
                    flag 
= true;
                }

                
else
                    flag 
= false;
                c[c_len
-1= char(one_bit+48);
                one_bit 
= 0;
                c_len
--;
                min_len
--;
                a_len
--;
                b_len
--;
            }

            
if(a_len==0)
            
{
                
while(b_len>0)
                
{
                    one_bit
=int(b[b_len-1])-48;
                    
if(flag)
                        one_bit
++;
                    
if(one_bit>9)
                    
{
                        one_bit 
-= 10;
                        flag 
= true;
                    }

                    
else
                        flag 
= false;
                    c[c_len
-1= char(one_bit+48);
                    one_bit 
= 0;
                    c_len
--;
                    b_len
--;
                }

            }


            
if(b_len==0)
            
{
                
while(a_len>0)
                
{
                    one_bit
=int(a[a_len-1])-48;
                    
if(flag)
                        one_bit
++;
                    
if(one_bit>9)
                    
{
                        one_bit 
-= 10;
                        flag 
= true;
                    }

                    
else
                        flag 
= false;
                    c[c_len
-1= char(one_bit+48);
                    one_bit 
= 0;
                    c_len
--;
                    a_len
--;
                }

            }

            
            
if(flag)
                c[
0= '1';
        }


        
if (flag)
            cout
<<c<<endl;
        
else
            cout
<<++c<<endl;
        flag 
= false;
        c 
= NULL;
    }

    

    
return 0;
}

这是当时提交的源程序,本以为要考虑负数的,原来不用......
posted on 2006-02-08 02:15 阅读(2520) 评论(27)  编辑 收藏 引用 所属分类: 算法&ACM

FeedBack:
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-02-08 13:03 Dzz
大数加法?  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-02-08 13:08 
就是 高精度  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-02-08 13:10 dzz
你是什么学校的?我也是大一不过技术很弱,想好好学学  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-02-08 13:12 
华南理工大学,计算机学院:)

and you?

交流下啦!~  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-02-08 13:14 dzz
我是西安电子科技大学的计算机,你们那考我们那里重点线就可以了  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-02-08 13:15 
呵呵,我是广东的,这里竞争很大啊,广东考高出重点线100分,我刚好进了,嘻嘻  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-02-08 13:16 Dzz
以后有问题向你请教吧  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-02-08 13:16 
西安好远啊,不过有得看雪,我qq:68193992,有空交流交流:)  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-02-21 17:07 沐枫网志
楼主怎么搞得这么惨……

这个题目是用来练手的,因此直接用+号就搞定了,没看到Hint吗?
题目没看清楚。题目没有特殊要求的,一般整数都是指 int 类型。

int a, b;
while(cin >> a >> b)
{
cout << a + b << endl;
}

这就完了。  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-02-21 20:57 
郁闷,我也是后来才知道的,呜呜。。。  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-02-22 01:37 ares_tc_j
查东西无意中进了这个博客,看了几篇文章,为大一新生的激情所感动。
但说句直话,你们还嫩阿,虚心一点最重要。
就你做的这几题,真的没什么可称道的,所以不要沾沾自喜。
还有,你们未必了解真正的软件开发,做题是回事,实际做东西是另一回事。做一个软件,程序设计的知识之占10%不到。
你说做项目?什么是项目?我怀疑呢,因为你现在的水平...........
好好努力吧,不要被别人蒙蔽眼睛。  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-02-22 01:46 ares_tc_j
补充一下:我是大四的,USTB,我的一个室友自己写了几万行代码的32位图形操作系统(两个月的时间),他也没称其为作业,而是说“个人作业”。我也做过较大的东西,但也没称其为项目。  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-02-22 01:47 ares_tc_j
补充一下:我是大四的,USTB,我的一个室友自己写了几万行代码的32位图形操作系统(两个月的时间),他也没称其为“项目”,而是说“个人作业”。我也做过较大的东西,但也没称其为“项目”,。  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-02-22 09:42 ff
ares_tc_j的室友竟然做过32位图形操作系统,才用了两个月的时间,从内核到界面吗?好崇拜呀!可否介绍一下经验:)  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-02-22 17:52 
:)虚心学习!~  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-03-11 11:05 空明流转
32bit?图形操作系统?貌似中国有不少这样的有识之士啊,能诞生一个Linus就好了!
ps,人家做对A+B高兴应该的,千里之行,始于足下嘛。不过我想LZ应该已经见识到ACM的可怕了吧,一个a+b都给你整成这样。。。俺学校烂,ACM组不起来,俺也老了。。。
有机会的一定要把握好啊!
至于是不是称之为Project只是名号的问题,何必追究呢。  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-09-16 16:05 linwen
不喜好ares_tc_j的说话方式....

每个人都自己的立足点,人家认为做的事能够达到自己的要求
成为“个人作业”,有什么不对?

还有什么叫做 "你们还嫩阿,虚心一点最重要。
就你做的这几题,真的没什么可称道的,所以不要沾沾自喜".

这里是人家的blog,难道自己在自己的blog表达自己的ac后的兴奋心情好要
小心翼翼,生怕被你这样的人看到后,乱批一顿啊????

再说项目也是有大有小的,个人有个人的标准,难道说要写出个linux,写出
个windows才算是个项目啊....真是乱哈喇...  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2006-09-24 19:51 Optimistic
原来豪兄是2月开始ACM的阿。。。。呵呵 强。。。  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2007-04-17 22:25 oyjpart
@ares_tc_j:
按你的口气是看不起做程序设计竞赛的人了
我来说说程序设计竞赛:
1.程序设计竞赛在于锻炼“脑力”,在熟练掌握各种算法和数据结构 常见数学模型与方法 解决问题的思维与稳健,往往是只一身早早投入项目中的人最最缺乏 也难以得到的珍贵品质 往往是突破一般型人才的关键要素
2.参与程序设计竞赛并非抛开项目 相信很多大学的老师在给项目安排本科生的时候首选的就是代码能力相对稳健的ACM选手 也就是说做程序设计竞赛的人非但不会抛开项目的实践 而是会在合适的时机全身心的投入进去
楼主写了一个a+b的程序你看了就鄙视
自己写了多么了不起的东西啊 空拿室友多么多么怎么怎么管什么用
殊不知 越是不得其真的人越是喜好随口开河

“就你做的这几题,真的没什么可称道的,所以不要沾沾自喜。”
你就找楼主博客里面的题目试试 看看自己能做几道?博大精神的图论算法体系 变幻无穷的计算几何 300行的宽搜 优美的动态规划 人工智能的应用 你又了解多少?

“你说做项目?什么是项目?我怀疑呢,因为你现在的水平...........
好好努力吧,不要被别人蒙蔽眼睛。”
我想问问什么叫蒙蔽 你自己醒醒吧

  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2007-04-18 01:29 
这个...发觉不知不觉已经一年了...感触...  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2007-04-20 11:22 shadow
ares_tc_j兄:
也许你是个技术上很牛x的人,你钻研技术很厉害,你很了解软件开发过程,你做过windows的内核,unix一半是你写的。但是我丝毫不佩服你。我之前学了j2me很长时间,最近工作需要才转到C++来,很多东西都是从头看起,我很菜,但是我并不觉得我嫩。我认为技术只是工具,只要你会使用就够了。我承认需要有钻研技术的人,但不是每个搞计算机的都要当图灵,每个做木工的都要当鲁班。
你说楼主不了解项目,你说做项目只有10%是程序设计的知识,那么你又凭什么通过楼主一个程序就判断楼主很嫩,不能做项目呢?
我认为软件开发只是一种思维方式,不管你技术好还是技术差,都具备这种思维方式,技术都可以慢慢学。你可以觉得我嫩,可以觉得我菜。没错,我是不如你,我只是依赖软件开发的技能维持我的生计,混口饭吃,我写不出什么一万行的程序,我也不会去写,因为软件开发是team work,我只需要做好项目需要我做的。
不要轻易评论别人,特别是居高临下的评论别人。这是做人的道理。
做学问和做人,哪一个更重要呢?  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2007-04-20 11:42 wzqxp2002
写程序嘛,和听音乐,看电影一样,个人娱乐嘛,干吗这么较真哦。不管程序大小,有用没用,有没有技术含量,只要自己高兴就好。  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2007-04-20 12:09 pengkuny
我想ares_tc_j兄应该没有鄙意吧,好歹作为"过来人"说上两句,没什么关系啦. 文字交流往往词不达意,看不到表情,听不到语气.
我在干嘛?  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^[未登录] 2007-05-27 14:43 Daniel
ares_tc_j的一番话说的重了点,但其实也是好意

个人觉得算法好的确很重要,但软件工程中代码的编写在整个软件工程中占的比重的确也很少,怎么说呢?仁者见仁,智者见智的事情,别人的话都参考一下也不是坏事吧,谁都不敢说自己什么都会吧?  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2007-06-30 10:32 姜雨生
算你狠
我USACO全过了
你还在做A+B!  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2008-11-14 19:29 xuxiao~SYSU to singapore NTU
ares_tc_j 强吗? 哪里看出来? 这里没看出
豪仔,嫩吗? 那里看出来? 这里也没看出来,
至少,态度就端正的很. 做大官先学做人, 其人不正 谈得上大事吗?

在国内加油~ 豪 ~ 相信你,支持你, 当初我们清中几个不是庸才  回复  更多评论
  
# re: 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^ 2009-02-26 20:20 Chiang
啊。发现楼上原来是师兄,去了南洋啊?  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理