zoukankan      html  css  js  c++  java
  • 大数的加法乘法

    大数自然不能用普通的int,或者long long.因为是肯定存不下的。所以就有两个选择,一个是通过字符串来进行运算,可以看之前的博客。

    http://www.cnblogs.com/jaydenouyang/p/6482977.html

    这里只介绍通过数组进行的运算。

    1.加法

      比如要求 1234 + 456 的和,可将 :

          1234 化为 a[0]=4(表示该数有多少位),a[1]=4,a[2]=3,a[3]=2,a[4]=1;

          456 化为 b[0]=3(同理),b[1]=6,b[2]=5,b[3]=4;      (在这里逆序排更方便些,正着也可以)

     1 int lena=a[0];
     2 int lenb=b[0];
     3 
     4 int s=0;
     5 for(int i=1;i<=lena;i++)
     6 {
     7     a[i]=a[i]+b[i]+s;
     8     s=0;
     9     if(a[i]>9)
    10     {
    11         s=a[i]/10;
    12         a[i]%=10;
    13     }
    14 }
    15 if(s)
    16 {
    17     a[++len]=s;
    18 }

    2.乘法

      同理按上述的方法存放大数

     1 int lena;
     2 int lenb;
     3 
     4 int s=0;
     5 int c=0;
     6 for(j=1;j<=lena;j++)
     7 {
     8     s=b[j]*(4*i-2)+c;
     9     c=s/10;
    10     a[j]=s%10;
    11 }
    12 while(c)
    13 {
    14     a[++lena]=c%10;
    15     c/=10;
    16 }
  • 相关阅读:
    HTML和CSS 基本要点必看
    CSS
    六个选择器
    HTML初级课程 (自学可懂)
    this
    1.作用域链
    js if 语句
    js数据类型
    ifelse语句
    三元运算符
  • 原文地址:https://www.cnblogs.com/ouyang_wsgwz/p/6749177.html
Copyright © 2011-2022 走看看