zoukankan      html  css  js  c++  java
  • 大数相乘 51nod 1027 水题

    给出2个大整数A,B,计算A*B的结果。
     
    Input
    第1行:大数A
    第2行:大数B
    (A,B的长度 <= 1000,A,B >= 0)
    Output
    输出A * B
    Input示例
    123456
    234567
    Output示例
    28958703552

    把两个数倒序放在数组里,
    然后算第一个数乘以一到九的值
    再通过位数去加在一起
    具体看程序
     1 #include <iostream>
     2 using namespace std;
     3 #include<string.h>
     4 #include<set>
     5 #include<stdio.h>
     6 #include<math.h>
     7 #include<queue>
     8 #include<map>
     9 #include<algorithm>
    10 #include<cstdio>
    11 #include<cmath>
    12 #include<cstring>
    13 #include <cstdio>
    14 #include <cstdlib>
    15 #include<stack>
    16 #include<vector>
    17 int a[1010];
    18 int b[1010];
    19 int c[10][10100];
    20 int d[1010000];
    21 char a1[1010];
    22 char b1[1010];
    23 int lena,lenb;
    24 int  cheng(int n)
    25 {
    26     int TM=0;
    27     int i;
    28     for(i=0;i<lena||TM!=0;i++)
    29     {
    30         c[n][i]=(a[i]*n+TM)%10;
    31         TM=(a[i]*n+TM)/10;
    32         //cout<<TM<<"_"<<endl;
    33     }
    34     //for(--i;i>=0;i--)
    35         //cout<<c[n][i];
    36     //cout<<endl;
    37 }
    38 int jia(int n,int x)
    39 {
    40     int TM=0;
    41     int i;
    42     int j;
    43     for(i=0,j=x;c[n][i]!=-1;i++,j++)
    44     {
    45         int temp=(TM+c[n][i]+d[j]);
    46         d[j]=temp%10;
    47         TM=temp/10;
    48     }
    49     if(TM!=0)
    50         d[j++]=1;
    51     return j;
    52 }
    53 int main()
    54 {
    55             memset(a,0,sizeof(a));
    56     memset(b,0,sizeof(b));
    57     memset(c,-1,sizeof(c));
    58     memset(d,0,sizeof(d));
    59     cin>>a1>>b1;
    60     lena=strlen(a1);
    61     lenb=strlen(b1);
    62     int add=0;
    63     for(int i=lena-1;i>=0;i--)
    64         a[add++]=a1[i]-'0';
    65     add=0;
    66      for(int i=lenb-1;i>=0;i--)
    67         b[add++]=b1[i]-'0';
    68     for(int i=1;i<10;i++)
    69         cheng(i);
    70     for(int i=0;i<lenb-1;i++)
    71         jia(b[i],i);
    72     int temp=jia(b[lenb-1],lenb-1);
    73     for(int i=temp-1;i>=0;i--)
    74         cout<<d[i];
    75     cout<<endl;
    76     return 0;
    77 }
    View Code
  • 相关阅读:
    文件系统管理
    软件包管理
    用户和用户组管理
    权限管理
    漏洞验证系列--MongoDB未授权访问
    【Jenkins】三、设置定时任务
    在CentOS Linux 7.5上安装MySQL
    CentOS7使用yum时File contains no section headers.解决办法
    Windows批处理(cmd/bat)常用命令学习
    Fiddler抓包工具总结
  • 原文地址:https://www.cnblogs.com/dulute/p/7499103.html
Copyright © 2011-2022 走看看