大数乘法模板

原创 2015年11月21日 10:09:08
/*
两个非常大的数相乘
模拟乘法运算
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<stack>
#include<cmath>
using namespace std;


#define MAX_N 221  
int a1[MAX_N],a2[MAX_N];  
char s1[MAX_N],s2[MAX_N];  
int p[MAX_N*2];  
int main()  
{  
    gets(s1);  
    gets(s2);  
    int i,j;  
    
    
    int len1=strlen(s1);  
    //将数组里的内容变为0 
    memset(a1,0,sizeof(a1));  
    memset(a2,0,sizeof(a2));  
    memset(p,0,sizeof(p));  
    
    j=0;  
    for(i=len1-1; i>=0; i--)  //用数组倒着记录字符串里的数据 
    {  
        a1[j++]=s1[i]-'0';  
    }  
    j=0;  
    int len2=strlen(s2);  
    for(i=len2-1; i>=0; i--)  
    {  
        a2[j++]=s2[i]-'0';  
    }  
    
    for(i=0; i<len1; i++)  
    {  
        for(j=0; j<len2; j++)  
        {  
            p[i+j] += a1[i]*a2[j];//模拟乘法  可以自己在草稿纸上写乘法然后运算看看是否满足这个规律 
        }  
    }  
    
    
    for(i=0; i<MAX_N*2; i++)  //进位 
    {  
        if(p[i]>=10)  
        {  
            p[i+1]+=p[i]/10;  
            p[i]%=10;  
        }  
    }  
    
    for(i=MAX_N*2-1; i>=0; i--)  //找到第一个非零点 
    {  
        if(p[i])  
        break;  
    }  
    
    for(int k=i; k>=0; k--)  //从后往前输出 
    {  
        printf("%d",p[k]);  
    }  
    printf("\n");  
    return 0;  
}  

版权声明:本文为博主原创文章,未经博主允许不得转载。

FFT 模板 大数相乘

大数乘法 基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 给出2个大整数A,B,计算A*B的结果。 Input 第1行:大数...
  • Summer__show_
  • Summer__show_
  • 2017年06月06日 05:26
  • 388

大数相加 大数相乘 模板

#include #include #include #include  using namespace std;  void multiply(const char *a,const cha...
  • u012848631
  • u012848631
  • 2014年05月18日 20:27
  • 868

大数乘法 poj 2389 ||大数乘法 hdu1402 FFT模板

poj 2389: code: #include #include #include #include using namespace std; int s[100]; void multiply...
  • lois_123
  • lois_123
  • 2015年08月13日 09:56
  • 491

高精度 大数加法 乘法 除法 幂 模板

高精度 大数加法 乘法 除法 幂 模板
  • u012860063
  • u012860063
  • 2014年07月04日 18:12
  • 1565

大数乘法——C++实现

大数乘法的实现在于利用理论上无限大的数据结构来替代基本数据类型。 本文实现了用string得到大数,同时利用vector容器来进行计算的程序,具体思路为: 1、利用string变量输入大数...
  • pancsd
  • pancsd
  • 2016年09月02日 14:01
  • 719

c++各类大数模板

首先大数加法 两个大数相加 string sum(string s1,string s2) { if(s1.length()=0;i--,j--) { s1[i]=char(s...
  • y990041769
  • y990041769
  • 2014年02月28日 08:32
  • 10040

大数乘法_C++STL写法模板

用C++的STL写这种异常清晰,主要是两个函数,一个add函数把两个deuqe的值相加,得到最终答案,其实这个函数是最后执行的。首先执行的是一个deque的所有值依次乘一个整数这个整数是从另一个deq...
  • K_HOLMES_
  • K_HOLMES_
  • 2016年08月15日 22:01
  • 154

hdu1402 大数相乘 快速傅里叶变换FFT

FFT入门题,FFT模板 #include #include #include #include #include #include using namespace std; #de...
  • Jackyguo1992
  • Jackyguo1992
  • 2013年10月11日 11:08
  • 5402

大数乘法(模板)

#include #include #include #include using namespace std; char c[1000001]; void reverse(char * c)//字符...
  • qq_1311538815
  • qq_1311538815
  • 2017年11月19日 19:23
  • 86

大数乘法模板

#include #include #include #include #include #include using namespace std; string s1,s2; strin...
  • lmlimiao
  • lmlimiao
  • 2014年10月11日 16:06
  • 170
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:大数乘法模板
举报原因:
原因补充:

(最多只允许输入30个字)