zoukankan      html  css  js  c++  java
  • PAT1017

    本题要求计算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的情况

    #include <iostream> 
    #include <string> 
    using namespace std;  
    int main()  
    {  
        string s;
        int a[1001],b,i,j,yu=0,sum;
        cin>>s>>b;
        for(i=0;i<s.length();i++)  //核心步骤 将大数运算转化为小数运算
        {
                sum = yu * 10 + (s[i]-'0');
                a[i] = sum / b;
                yu = sum % b;
        }
        for(j=0;j<i;j++)
        {
              if(a[j]==0 &&j+1==i)  ///为了处理A<B的情况
              {
                  break;     
          }
              if(a[j]!=0 )  //高位去0
              {
                    break;     
          }
        } 
        
        for(j;j<i;j++)
        {
               cout<<a[j];
        }
        cout<<" "<<yu;
        return 0;
    }  
  • 相关阅读:
    linux中~和/的区别
    Linux centos 7安装
    xshell远程连接虚拟机
    虚拟机Linux不能上网简单有效的解决办法
    visudo
    users
    TreeSizeFree(硬盘文件整理)
    dos2unix
    iconv
    PS1系统变量
  • 原文地址:https://www.cnblogs.com/wshyj/p/6289123.html
Copyright © 2011-2022 走看看