文章
4
粉丝
171
获赞
5
访问
16.8k
一道模拟的题目,思路与大整数加法类似
代码如下:
//
// Created by Jason Liu on 2022/7/26.
//
#include<iostream>
#include<string>
using namespace std;
string a, b;
int main(){
cin >> a >> b;
int sa = a.size();
int sb = b.size();
// 找到小数点位置
int pos1 = a.find('.');
int pos2 = b.find('.');
// 在较短串的前面补充0
if(pos1 < pos2){
for(int i=1; i<=pos2-pos1; i++){
a.insert(a.begin(), '0');
}
}else {
for (int i = 1; i <= pos1 - pos2; i++) {
b.insert(b.begin(), '0');
}
}
// 可能出现进位情况,所以第一位补充0
a.insert(a.begin(), '0');
b.insert(b.begin(), '0');
int l1 = sa - pos1 -1;
int l2 = sb - pos2 - 1;
// 末尾补充0,这样补完之后,两个串的长度一样,便于计算
if(l1 < l2){
for(int i=1; i<=l2-l1; i++){
a.insert(a.end(), '0');
}
}else {
for(int i=1; i<=l...
登录后发布评论
暂无评论,来抢沙发