当前位置: 代码迷 >> 综合 >> 1017--A除以B--大数相除
  详细解决方案

1017--A除以B--大数相除

热度:12   发布时间:2023-12-12 06:44:17.0

本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。

输入格式:

输入在一行中依次给出 A 和 B,中间以 1 空格分隔。

输出格式:

在一行中依次输出 Q 和 R,中间以 1 空格分隔。

输入样例:

123456789050987654321 7

输出样例:

17636684150141093474 3
#include<iostream>
using namespace std;
int main(){char a[1001];int b,i=0,div,mod;cin>>a;cin>>b;while(a[i]!='\0')i++;int len=i;if(len==1)//长度为1直接进行计算了!!cout<<(a[0]-'0')/b<<" "<<(a[0]-'0')%b<<endl;else{div=(a[0]-'0')/b;mod=(a[0]-'0')%b;if(div!=0)cout<<div;for(i=1;i<len;i++) {div=(mod*10+(a[i]-'0'))/b;cout<<div;mod=(mod*10+(a[i]-'0'))%b;}cout<<" "<<mod<<endl;}
}