码迷,mamicode.com
首页 > 编程语言 > 详细

PAT 乙级 1017 A除以B (20) C++版

时间:2017-07-26 00:09:42      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:content   return   pac   span   logs   限制   name   size   str   

1017. A除以B (20)

时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

本题要求计算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只有一位数的时候,A的第一位小于B的时候

 1 // 1017.cpp : 定义控制台应用程序的入口点。
 2 //
 3 
 4 #include "stdafx.h"
 5 #include<iostream>
 6 #include<string>
 7 #include<typeinfo>
 8 
 9 using namespace std;
10 
11 int main()
12 {
13     string A,Q;
14     int B, R;
15 
16     cin >> A >> B;
17 
18     int size = A.size();
19 
20     if (size == 1)
21         cout << (A[0] - 48) / B << " " << (A[0] - 48) % B << endl;
22     else
23     {
24         if ((A[0]) < B+48)
25         {
26             Q.push_back((((A[0] - 48) * 10 + A[1] - 48) / B)+48);
27             R = ((A[0] - 48) * 10 + A[1] - 48) % B;
28         }
29         else
30         {
31             Q.push_back((A[0] - 48) / B+48);
32             R = (A[0] - 48) % B;
33 
34             Q.push_back(((R * 10 + A[1] - 48) / B)+48);
35             R = (R * 10 + A[1] - 48) % B;
36         }
37 
38         for (int i = 2; i < size; ++i)
39         {
40             Q.push_back(((R * 10 + A[i] - 48) / B) + 48);
41             R = (R * 10 + A[i] - 48) % B;
42         }
43 
44         cout << Q << " " << R << endl;
45     }
46 
47     return 0;
48 }

 

PAT 乙级 1017 A除以B (20) C++版

标签:content   return   pac   span   logs   限制   name   size   str   

原文地址:http://www.cnblogs.com/cdp1591652208/p/7236847.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!