• 高精度除法


    1128: 高精度高精度除法

    题目描述

    计算n/m的值,设n,m为整数,n的长度小于等于1000,m的长度小于等于15位,要求精确到小数点后500位。如果整数位为零,则省略小数点前的零

    输入

    两行,每行一个整数

    输出

    一行,保留500位小数的实数。

    样例输入

    355

    113

    样例输出

    3.14159292035398230088495575221238938053097345132743362831858407079646017699115044247787610619469026548672566371681415929203539823008849557522123893805309734513274336283185840707964601769911504424778761061946902654867256637168141592920353982300884955752212389380530973451327433628318584070796460176991150442477876106194690265486725663716814159292035398230088495575221238938053097345132743362831858407079646017699115044247787610619469026548672566371681415929203539823008849557522123893805309734513274336

     1 #include<cstdio>
     2 #include<cstring>
     3 char n[1005];
     4 long long temp,m;
     5 int main()
     6 {
     7     bool flag=0;
     8     scanf("%s%lld",n,&m);  //先输入n为字符串,然后输入m被除数
     9     for (int i=0;i<strlen(n);i++)//整数部分的运算 
    10     {
    11         temp=temp*10+n[i]-'0';  //temp表示前一位余下来的加上这一位正常的那个数进行运算 
    12         if (temp/m!=0) //直到除出来的商有意义则进行运算 
    13         flag=1;
    14         if (flag==1)
    15         printf("%d",temp/m);//留下整除出来的商 
    16         temp%=m;//把余数保留下来进行下一次除法运算 
    17     }
    18     printf(".");
    19     for (int i=1;i<=500;i++)//500位小数部分的运算 
    20     {
    21         temp*=10;//首先每一次都要给余数乘十进行运算 
    22         printf("%d",temp/m);//然后把答案输出 
    23         temp%=m;//保留余数 
    24     }
    25     return 0;
    26 }

    ***高精度除法

    1.      使被除数一位一位的移动去除以除数

    2.      保留整数商

    3.      留下余数进行下一次运算

    4.      小数部分的下一次运算的被除数等于上一位余数的十倍

    5.      输出整数商

  • 相关阅读:
    JQuery扩展方法
    RabbitMQ消息机制广播分发
    RabbitMQ消息机制单人分发
    对函数的参数求和
    ajax jsonp
    绑定函数bind()
    this 指向
    DOM兼容
    命名空间 namespace
    开始看编写高质量的代码
  • 原文地址:https://www.cnblogs.com/rax-/p/8537131.html
Copyright © 2020-2023  润新知