上海计算机学会2024年5月月赛C++丙组T1加法的进位
发布时间
阅读量:
阅读量
加法的进位
内存限制: 256 Mb时间限制: 1000 ms
题目描述
给定两个整数 a 与 b,请计算在十进制加法过程中,a+b 产生了多少次进位。
输入格式
- 第一行:单个整数表示 a。
- 第二行:单个整数表示 b。
输出格式
- 单个整数:表示发生进位的次数。
数据范围
- 1≤a,b≤1,000,000,000
样例数据
输入:
666
234
输出:
2
输入:
999
1
输出:
3
解析:模拟竖式加法,详见代码:
#include <bits/stdc++.h>
using namespace std;
int a,b;
int ans=0;
int main() {
cin>>a>>b;
int y=0;
while(a>0||b>0){
y+=a%10+b%10;
if (y>=10){
ans++;
}
y/=10;
a/=10;
b/=10;
}
cout<<ans;
return 0;
}
AI写代码cpp

用字符串的解法:
#include <bits/stdc++.h>
using namespace std;
string a,b;
int ans=0;
int main() {
cin>>a>>b;
int lena=a.length();
int lenb=b.length();
int y=0;
for(int i=lena-1,j=lenb-1;i>=0||j>=0;i--,j--){
if (i>=0){
y+=a[i]-'0';
}
if (j>=0){
y+=b[j]-'0';
}
if (y>=10){
ans++;
}
y/=10;
}
cout<<ans;
return 0;
}
AI写代码cpp

全部评论 (0)
还没有任何评论哟~
