1 条题解
-
0
思路
设三串数字为 ,那么 就 。
对于 有两种情况,要么是不进位要么是进位。
此时我们发现:对于每个合法区间 , 之间的每一位都是情况 1 或情况 2,且第 位一定不会进位,第 位一定是情况 2。
最后要注意处理前一位没有进位时如果 是 要做进位处理。
Code
#include<bits/stdc++.h> #define int long long using namespace std; string a,b,c; int ans,w,s; signed main(){ cin>>a>>b>>c; for(int i=a.size()-1;i>=0;--i){ int now=a[i]-'0'+b[i]-'0',h=c[i]-'0'; if(now>=10||(now==9&&w==1&&h==0)){ if(now%10==h){ if(w==1){ s=1; } else{ ++s; } w=1; } else if((now+1)%10==h&&w==1){ w=1; } else{ s=0; w=0; } } else{ if(now%10==h){ if(w==1){ s=1; ans+=s; } else{ ++s; ans+=s; } w=0; } else if((now+1)%10==h&&w==1) { ans+=s; w=0; } else { s=0; w=0; } } } printf("%lld",ans); return 0; }结语
感谢大家的观看和管理员的审核,祝大家在算法竞赛的道路上越走越远!
- 1
信息
- ID
- 11493
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者