概述
A除以B (20)
时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)
题目描述
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入描述:
输入在1行中依次给出A和B,中间以1空格分隔。
输出描述:
在1行中依次输出Q和R,中间以1空格分隔。
输入例子:
123456789050987654321 7
输出例子:
17636684150141093474 3
不能用通常的A/B,A%B算商和余数,因为A,B可能非常大,会导致浮点错误。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string A, Q;
int B,R=0;
cin >> A >> B;
int length = A.length();
int temp = A[0] - '0';
if (temp >= B)
Q.push_back(temp / B + '0');
for (int i = 1; i < length; i++)
{
R = temp%B;
temp = R * 10 + A[i] - '0';
Q.push_back(temp / B + '0');
}
R = temp%B;
if (length == 1 && A[0] - '0' < B)
cout << "0 " << A[0] - '0';
else
cout << Q << " " << R;
return 0;
}
最后
以上就是隐形秀发为你收集整理的PAT-A除以B的全部内容,希望文章能够帮你解决PAT-A除以B所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复