本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。
输入格式:
输入在一行中依次给出 A 和 B,中间以 1 空格分隔。
输出格式:
在一行中依次输出 Q 和 R,中间以 1 空格分隔。
输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3
#include <bits/stdc++.h>
using namespace std;
int main() {
string a;
int n,q,r;
cin>>a>>n;
q = (a[0] - '0')/n;
if(q!=0&&a.length()>1||a.length()==1)printf("%d",q);
r = (a[0] - '0')%n;
for(int i=1;i<a.length();i++){
q = (r*10+a[i]-'0')/n;
printf("%d",q);
r = (r*10+a[i]-'0')%n;
}
printf(" %d",r);
return 0;
}
本文介绍了一种处理大数除法的算法实现,适用于A为不超过1000位的正整数,B为1位正整数的情况。通过逐位计算商和余数,实现了大数除法的有效处理。
1136

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



