zoukankan      html  css  js  c++  java
  • / 已阅 /PAT1017-------高精度计算,问题的所有可能情况

    本题要求计算 /,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。

    输入格式:

    输入在一行中依次给出 A 和 B,中间以 1 空格分隔。

    输出格式:

    在一行中依次输出 Q 和 R,中间以 1 空格分隔。

    输入样例:

    123456789050987654321 7
    

    输出样例:

    17636684150141093474 3
    --------------------------------------------------
    借助字符串来还原最原始的除法公式

    #include <stdio.h>
    #include<string.h>
    #include<iostream>
    #include <math.h>
    #include <malloc.h>
    using namespace std;

    int main(){
    char a[1001];
    cin>>a;
    int b;
    cin>>b;
    int n;
    n=strlen(a);
    int temp=0,flag=0;
    for(int i=0;i<n;i++)
    {
    temp=(a[i]-'0')+10*temp;      //如果前面留下来的数加上下一位小于除数这时候对应位置上就应该是零了
    if(temp>=b)
    {
    cout<<(temp/b);                  
    flag=1;                                 
    }else if(flag){
    cout<<"0";        //所以才有了这一步

    }            //总之应该有temp<b的那种情况

    temp=temp%b;
    }
    if(flag==0)               /////被除数小于除数的情况,就没有进行循环
    {
    cout<<"0";
    }
    cout<<" "<<temp;
    return 0;
    }

  • 相关阅读:
    appium---webview(H5)元素定位
    appium---切换webview时报错
    appium---如何判断原生页面和H5页面
    JDK与Java SE/EE/ME的区别
    Ubantu18.04安装WPS
    堆与栈的区别
    JAVA-基础(Stream流)
    Java面试(1)
    ubuntu自带截图工具
    Linux 下各个目录的作用及内容
  • 原文地址:https://www.cnblogs.com/BananaMan/p/11209342.html
Copyright © 2011-2022 走看看