zoukankan      html  css  js  c++  java
  • 高精除低精

    #include<cstdio>

    #include<iostream>

    #include<cmath>

    #include<algorithm>

    #include<cstring>

    using namespace std;

    int main()

    {

             char a[100005],b[100005];

             int aa[100005],cc[100005],lena,lenc,b,i,x;

             memset(aa,0,sizeof(aa));

             memset(cc,0,sizeof(cc));

             gets(a);//输入被除数

             scanf("%d",&b);//输入除数

             lena = strlen(a);

             for(i = 0;i <= lena - 1;i++)aa[lena + 1] = a[i] - 48;

             x = 0;

             for(i = 1;i <= lena;i++)

             {

                       c[i] = (x * 10 + a[i]) / b;

                       x = (x * 10 + a[i]) % b;

             }

             lenc = 1;

             while(c[lenc] == 0 && lenc < lena) lenc++;

             for(i = lenc;i <= lena;i++)printf("%d",c[i]);

    printf(".");

             for(i = 1;i <= 500;i++)

             {

                       x*=10;

                       printf("%d",x/b);

                       x%=b;

              }

             return 0;

    }

    这段代码的红色部分是核心所在。首先,举一个例子:12345/34 a[1]=1;a[2]=2;a[3]=3;a[4]=4;a[5]=5.b=34

    I=1.c[1]=(0+1)/34 =0.x=(0+1)%34=1

    I=2.c[2]=(10+2)/34=0.x=(10+2)%34=12

    I=3.c[3]=(120+3)/34=3.x=(120+3)%34=21.

    I=4.c[4]=(210+4)/34=6.x=(210+4)%34=10.

    I=5.c[5]=(100+5)/34=3.x=(100+5)%34=3.

    ......

    此时得到的结果为00363...其中363便是12345/34的整数部分,而x最后的值3则是12345%34的值。这样的方法叫做按位相除法。

    接着看蓝色部分,这是对小数进行的处理与输出。现在余数x=3

    I=1

    X=x*10=30 x/b=30/34=0 x=x%b=30%34=30

    I=2

    X=x*10=300.x/b=300/34=8.x=x%b=300%34=28

    I=3

    X=x*10=280x/b=280/34=8.x=x%b=280%34=8

    I=4

    X=x*10=80.x/b=80/34=2.x=x%b=80%34=12...

    现在得到小数部分0882.......

    通过每次对余数进行“填0”操作,达到能够除以除数的目的,反复操作,直到小数部分够500位为止。

  • 相关阅读:
    68
    56
    Django manager 命令笔记
    Django 执行 manage 命令方式
    Django 连接 Mysql (8.0.16) 失败
    Python django 安装 mysqlclient 失败
    H.264 SODB RBSP EBSP的区别
    FFmpeg—— Bitstream Filters 作用
    MySQL 远程连接问题 (Windows Server)
    MySQL 笔记
  • 原文地址:https://www.cnblogs.com/peppa/p/8538354.html
Copyright © 2011-2022 走看看