1 条题解
-
1
这道题真的很难
首先,我们要知道这道题的步骤
但,在完成这些步骤前,我们要先完成这些。
const int maxn = 500+5; int a[maxn];//加数 int b[maxn];//加数 int c[maxn];//进位 int ans[maxn];//结果 string s;//不搞这个没法一次性输入加数
步骤一共有四步
一,把
s
中的值移入a
依然有个前提,就是要先定义这个
int la = s.length();//加数的长度
代码如下cin >> s;//输入加数 int la = s.length(); for(int i=1;i<=la;i++){ a[i] = s[la-i]-'0';//把s中的值倒着加入 }
至于为什么要减去字符0可以看这个 第二步同上 再这样加
int len = max(la,lb); for(int i=1;i<=len;i++){ ans[i] = (a[i] + b[i] + c[i])%10; c[i+1] = (a[i] + b[i] + c[i])/10; }
最后这样输出
if(c[len+1] != 0){//特判 cout << c[len+1]; } for(int i=len;i>=1;i--){ cout << ans[i]; }
- 1
信息
- ID
- 5659
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 122
- 已通过
- 66
- 上传者