(学习向)大数除法(余数,小数)

由PTA B1017启发,弄了小数版本

//余数版
#include
using namespace std;
string a;
int in_num[1010];
int outn[1010];
int main()
{
    int flag=0;
    int sum=0;
    int div;
    cin>>a>>div;
    int lena=a.size();
    for(int i=0;i<lena;++i)in_num[i]=a[i]-'0';

    for(int i=0;i<lena;++i){
        sum=sum*10+in_num[i];
        outn[i]=sum/div;
        sum%=div;
        if(outn[i]!=0 && flag==0)flag=1;
        if(flag==1)cout<<outn[i];
    }
    if(flag==0)cout<<0;
    cout<<" "<<sum<<endl;
    system("pause");
    return 0;
}
//小数版
#include
using namespace std;
string a;
int in_num[1010];
int outn[1010];
int main()
{
    int flag=0;
    int sum=0;
    int div;
    int count;
    cin>>a>>div>>count;
    int lena=a.size();
    for(int i=0;i<lena;++i)in_num[i]=a[i]-'0';

    for(int i=0;i<lena+count;++i){//如果需要进位,只需要再+1,判断是否进位
        sum=sum*10+in_num[i];
        outn[i]=sum/div;
        sum%=div;
        if(outn[i]!=0 && flag==0)flag=1;
        if(flag==1)cout<<outn[i];
        if(i==lena-1)cout<<'.';
    }
    system("pause");
    return 0;
}

你可能感兴趣的:(学习)