zoukankan      html  css  js  c++  java
  • 高精度乘法模板(luogu1303)

    洛谷1303

     1 //luogu1303,不压位的高精度乘法
     2 #include <cstdio>
     3 #include <iostream>
     4 
     5 using namespace std;
     6 
     7 const int max_n=4040;
     8 
     9 int a[max_n],b[max_n],c[max_n];
    10 string x,y;
    11 
    12 //字符串转数组(倒序)的函数
    13 void swi(string s,int a[])
    14 {
    15     for (int i=0;i<max_n;i++) a[i]=0;
    16     int n=s.size()-1;
    17     for (int i=n;i>=0;i--)
    18     {
    19         a[0]++;
    20         a[a[0]]=s[i]-'0';
    21     }
    22 }
    23 
    24 //c=a*b
    25 void multiply(int a[],int b[],int c[])
    26 {
    27     if (a[0]==1 && a[1]==0 || b[0]==1 && b[1]==0)
    28     {
    29         c[0]=1;c[1]=0;return;
    30     }
    31     for (int i=1;i<=a[0]+b[0];i++) c[i]=0;
    32     for (int i=1;i<=a[0];i++)
    33         for (int j=1;j<=b[0];j++)
    34         {
    35             c[i+j-1]+=a[i]*b[j];
    36             c[i+j]+=c[i+j-1]/10;
    37             c[i+j-1]%=10;
    38         }
    39     if (c[a[0]+b[0]]==0) c[0]=a[0]+b[0]-1;
    40     else c[0]=a[0]+b[0];
    41 }
    42 
    43 //输出c
    44 void out(int a[])
    45 {
    46     for (int i=a[0];i>0;i--) printf("%d",a[i]);
    47 }
    48 int main()
    49 {
    50     cin>>x>>y;
    51     swi(x,a);swi(y,b);
    52     multiply(a,b,c);
    53     out(c);
    54     return 0;
    55 }
  • 相关阅读:
    MySQL递归查询树状表的子节点、父节点
    ajax传递参数给springmvc总结[转]
    转:Java中String与byte[]的转换
    easymock的用法
    java的反射
    spring的依赖注入
    等页面加载完
    ajax请求
    对象的复制
    springJDBC
  • 原文地址:https://www.cnblogs.com/Currier/p/11298851.html
Copyright © 2011-2022 走看看