题目链接:点击查看
题目描述:
本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。
输入输出:
输入
123456789050987654321 7
输出
17636684150141093474 3
题目分析:
对于大数问题,其加减乘除手动模拟即可。
代码:
#include<iostream>
using namespace std;
int main()
{
string s;
int rem,k,qnt;//qut表示商 rem表示余数 k表示输入的第二个整数
cin>>s>>k;
int len=s.length();
qnt=(s[0]-'0')/k;//第一位前没有数字 需要单独处理
if((qnt!=0&&len>1)||len==1)
{
cout<<qnt;
}
rem=(s[0]-'0')%k;
for(int i=1;i<len;i++)
{
qnt=(rem*10+s[i]-'0')/k;
cout<<qnt;
rem=(rem*10+s[i]-'0')%k;
}
cout<<" "<<rem;
return 0;
}