zoukankan      html  css  js  c++  java
  • 高精度模板(各个)

    加法

    // luogu-judger-enable-o2
    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
    	char a1[1000],b1[1000];
    	int a[1000]= {0},b[1000]= {0},c[1000]= {0},la,lb,lc,i,x;
    	cin>>a1>>b1;
    	la=strlen(a1);
    	lb=strlen(b1);
    	for(i=0; i<=la-1; i++) a[la-i]=a1[i]-48;
    	for(i=0; i<=lb-1; i++) b[lb-i]=b1[i]-48;
    	lc=1,x=0;
    	while(lc<=la||lc<=lb) c[lc]=a[lc]+b[lc]+x,x=c[lc]/10,c[lc]%=10,lc++;
    	c[lc]=x;
    	if(c[lc]==0) lc--;
    	for(i=lc; i>=1; i--) cout<<c[i];
    	cout<<endl;
    	return 0;
    }
    //A+B problem
    

    乘法

    // luogu-judger-enable-o2
    #include<bits/stdc++.h>
    using namespace std;
    char a1[50001],b1[50001];
    int a[50001],b[50001],i,x,len,j,c[50001];
    int main ()
    {
        cin >>a1 >>b1;
        a[0]=strlen(a1);b[0]=strlen(b1);
        for (i=1;i<=a[0];++i)a[i]=a1[a[0]-i]-'0';
        for (i=1;i<=b[0];++i)b[i]=b1[b[0]-i]-'0';
        for (i=1;i<=a[0];++i)for (j=1;j<=b[0];++j)c[i+j-1]+=a[i]*b[j];
        len=a[0]+b[0];
        for (i=1;i<len;++i)if (c[i]>9){c[i+1]+=c[i]/10;c[i]%=10;}
        while (c[len]==0&&len>1)len--;
        for (i=len;i>=1;--i) cout<<c[i];
        return 0;
    }
    
  • 相关阅读:
    [Linux]-配置多台机器的SSH相互信任
    [Linux]-常用代码块
    [Linux]-Shell编程与规范
    [Sqoop]-任务
    [Sqoop]-导入导出
    [Sqoop]-认识&部署
    [Hive]-函数篇
    Tomcat catalina.out日志使用log4j按天分割
    技术站点
    Linux监控命令
  • 原文地址:https://www.cnblogs.com/zhnzh/p/13393613.html
Copyright © 2011-2022 走看看