1168 大整数加法

题目链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1168

2017年12月18日晚22:00函数题全部刷完,偶看到高精度题,想刷一下,本想是一道简单的题,然而,第一次代码25分钟如下:

然而

2017-12-18 22:02:24

同样的结果

2017-12-18 22:49:14

欣喜20分

2017-12-18 23:32:04

仍然20分

2017-12-18 23:38:28

仍然。。。不能绝望。。。

 

 

睡觉去。。。。

 

 

第二天。。。继续。。看题解。。换思路

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 char ac[300],bc[300];
 6 int a[300],b[300],c[300];
 7 int la,lb,x;
 8 int main()
 9 {
10     gets(ac);gets(bc);
11     la=strlen(ac);lb=strlen(bc);
12     for(int i=0;i<=la-1;i++)a[la-i]=ac[i]-48;//倒置字符转数字输入整数数组 
13     for(int i=0;i<=lb-1;i++)b[lb-i]=bc[i]-48;//倒置字符转数字输入整数数组 
14     
15     int lc=1;
16     while(lc<=la||lc<=lb)
17     {
18         c[lc]=a[lc]+b[lc]+x;
19         x=c[lc]/10;
20         c[lc]%=10;
21         lc++;
22     }
23     c[lc]=x;//最高位的计算 
24     while(c[lc]==0)lc--;//去掉前导0 
25     for(int i=lc;i>=1;i--)cout<<c[i];
26     
27     return 0;
28 }

结果。。。

我的天。。看我都干了点什么

 

结论:有很多算法,看起来简单,刷起来有很多细节要注意,所以竞赛过程中尽量避免出现眼高手低的情况。。。。

 

posted @ 2017-12-19 11:41  TFLSNOI  阅读(1593)  评论(0编辑  收藏  举报