1017 A除以B(20 分)
本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。
输入格式:
输入在一行中依次给出 A 和 B,中间以 1 空格分隔。
输出格式:
在一行中依次输出 Q 和 R,中间以 1 空格分隔。
输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3
#include<iostream>
#include<string>
using namespace std;
int main(){
// freopen("C:\\1.txt", "r", stdin);
string str, ans;
int n, d = 0;
cin >> str >> n;
for(int i =0; i <= str.size() -1; i++){
int c = d * 10 + (str[i] - '0');
ans += (c / n + '0');
d = c % n;
}
for(int i = (ans[0] == '0' && ans.size() != 1)? 1 : 0; i < ans.size(); i++){
cout << ans[i];
}
cout << ' ' << d;
return 0;
}
本文介绍了一种处理大数除法的算法实现,能够计算不超过1000位的正整数A除以一位正整数B的问题,并正确输出商数Q和余数R。该算法使用C++编写,通过逐位处理字符串形式的大数完成运算。
3038

被折叠的 条评论
为什么被折叠?



