zoukankan      html  css  js  c++  java
  • PAT 乙级 1017 A除以B (20) C++版

    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 }
  • 相关阅读:
    2019年金秋第八周助教小结
    2019年金秋第七周助教小结
    2019年金秋第五周助教小结
    2019年金秋第四周助教小结
    2019年金秋第三周助教小结
    Java实验报告(一)
    L1-049 天梯赛座位分配 (20 分)
    助教个人总结
    【CF603E】Pastoral Oddities
    机房人物列传
  • 原文地址:https://www.cnblogs.com/cdp1591652208/p/7236847.html
Copyright © 2011-2022 走看看