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位为止。

  • 相关阅读:
    Python 学习笔记 11.模块(Module)
    Python 学习笔记 8.引用(Reference)
    Python 学习笔记 9.函数(Function)
    Python 学习笔记 6.List和Tuple
    Python 学习笔记 4.if 表达式
    Python 学习笔记 2.自省
    Python 学习笔记 3.简单类型
    Python 学习笔记 7.Dictionary
    Python 学习笔记 5.对象驻留
    Python 学习笔记 10.类(Class)
  • 原文地址:https://www.cnblogs.com/peppa/p/8538354.html
Copyright © 2011-2022 走看看