- 题解
???
- 2025-7-13 14:31:55 @
#include<bits/stdc++.h>
using namespace std;
int main() { string a_str, b_str; cin >> a_str >> b_str;
// 处理符号
int sign_a = 1, sign_b = 1;
if (a_str[0] == '-') {
sign_a = -1;
a_str = a_str.substr(1);
} else if (a_str[0] == '+') {
a_str = a_str.substr(1);
}
if (b_str[0] == '-') {
sign_b = -1;
b_str = b_str.substr(1);
} else if (b_str[0] == '+') {
b_str = b_str.substr(1);
}
// 如果a_str为空,则a=0
if (a_str.empty()) {
cout << "0" << endl;
return 0;
}
long long b_val = stoll(b_str); // 将b_str转换为long long
int sign = sign_a * sign_b; // 商的符号
string result; // 存储商的绝对值
long long remainder = 0; // 余数
for (int i = 0; i < a_str.length(); i++) {
remainder = remainder * 10 + (a_str[i] - '0');
long long digit = remainder / b_val;
remainder = remainder % b_val;
// 如果digit非零或result非空(已有非零数字),则添加到结果
if (digit != 0 || !result.empty()) {
result += ('0' + digit);
}
}
// 如果结果为空,说明商为0
if (result.empty()) {
result = "0";
}
// 处理符号:商非0且符号为负时添加负号
if (sign == -1 && result != "0") {
result = '-' + result;
}
cout << result << endl;
return 0;
}
0 条评论
目前还没有评论...