高精度计算 /*高精度的乘法运算*/

Posted gE_nis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高精度计算 /*高精度的乘法运算*/相关的知识,希望对你有一定的参考价值。

 高精度乘单精度

求 a=a*b。( 0<a<10250,  0<b<108)

输入:

     第一行:a

     第二行:b

输出:

  a*b 的值。

样例输入:

   330

   100

样例输出:

   33000
 
分析:

     1)a 的每一位都单独与 b 相乘;

     2)再由低到高位依次处理 a 的进位;

     3)最后处理最高位。

程序实现:

   

 1 //高精度乘单精度 
 2 #include <iostream>
 3 #include <cstring>
 4 using namespace std;
 5 
 6 char s1[300], s2[300];
 7 int a[300];
 8 
 9 int main()
10 {
11     int la, b, m;
12     cin >> s1 >> b;
13     la = strlen(s1);
14     for(int i=1;i<=la;i++)
15         a[i] = s1[la-i] - 48;
16     for(int i=1;i<=la;i++)
17         a[i] = a[i] * b;
18     for(int i=1;i<=la;i++)
19     {
20         a[i+1] += a[i] / 10;
21         a[i] = a[i] % 10;
22     }
23     m = a[la+1];
24     while(m>0)
25     {
26         a[++la] = m % 10;
27         m = m/10;
28     }
29     for(int i=la;i>=1;i--)
30         cout << a[i];
31     
32     return 0;
33 }
34  

 

以上是关于高精度计算 /*高精度的乘法运算*/的主要内容,如果未能解决你的问题,请参考以下文章

高精度乘法

大数运算(加减乘除)

从零开始的算法学习生活——①高精度运算

从零开始的算法学习生活——①高精度运算

js乘法精度计算代码 求解释

52 高精度乘法