高精度除以单精度

· · 个人记录

题目描述

一个高精度数除以一个单精度数,求出它们的商和余数。

输入输出格式

输入格式:

输入有2行, 第1行是被除数,位数都不超过100位。

第2行是除数。

输出格式:

输出有2行。

第1行是商,

第2行是余数。

【代码】

#include<bits/stdc++.h>
using namespace std;

int c[10010],a[10010],b,len_a,len_c,x;

void read()
{
    string s;
    cin>>s>>b;
    len_a=s.size();
    for(int i=len_a-1;i>=0;--i)
        a[len_a-i-1]=s[i]-'0';
}

void div()
{
    x=0;
    for(int i=len_a-1;i>=0;--i)
    {
        c[i]=(x*10+a[i])/b;
        x=(x*10+a[i])%b;
    }
    len_c=len_a;
    while(c[len_c-1]==0&&len_c>1) --len_c;//去掉前导0 
}

void write()
{
    for(int i=len_c-1;i>=0;--i)
        cout<<c[i];
    cout<<endl;
    cout<<x;
}
int main()
{
    //freopen("a5.in","r",stdin);
    //freopen("a5.out","w",stdout);
    read();
    div(); 
    write();
    //fclose(stdin);
    //fclose(stdout);
    return 0;
}