问题 V: A除以B
题目描述
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入
输入在1行中依次给出A和B,中间以1空格分隔。
输出
在1行中依次输出Q和R,中间以1空格分隔。
样例输入
123456789050987654321 7
样例输出
17636684150141093474 3
题解:模拟小学我们计算除法的过程
AC代码:
#include <iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int shu[1001],result[1001];
int main()
{
int n,r;
string a;
cin>>a;
scanf("%d",&n);
memset(result,0,sizeof(result));
for(int i=0;i<a.size();i++){
shu[i]=a[i]-'0';
}
int x=0;
for(int i=0;i<a.size();i++){
result[i]=(shu[i]+x*10)/n;
x=(shu[i]+x*10)%n;
//cout<<result[i]<<" "<<x<<endl;
}
r=x;
for(int i=0;i<a.size();i++){
if(result[i]||i>0)
cout<<result[i];
}
cout<<" "<<r;
return 0;
}
还没有评论,来说两句吧...