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;
    }

  • 相关阅读:
    Spark Streaming ---没用
    spark-streaming笔记 ---没用
    zookeeper笔记 ---没用
    远程调试笔记 ---没用
    远程仓库
    git之时光机穿梭
    分布式版本控制系统 VS 集中式
    Map与WeakMap
    set与weakset
    Genarator生成器
  • 原文地址:https://www.cnblogs.com/BananaMan/p/11209342.html
Copyright © 2011-2022 走看看