大数乘法c++

大数乘法c++

找规律

  • 把两乘数用数组表示,如下图进行相乘
  • 观察a、b、c字母的下标特点
  • 发现ci+j-1=∑ai*bj。如c1=a1*b1,c2=a2*b1+a1*b2
  • 如果脚标从0开始,关系为ci+j=∑ai*bj
  • 两乘数长度为m、n,则积的长度为m+n(不超过)
  • 第i位乘第j位,所得的结果在第i+j位上,如果有进位,则进位在i+j+1位上。
    在这里插入图片描述

代码

#include <iostream> 
#include<cstring>
using namespace std;
void largeMulti(char* a,char* b,char* c){
	int la=strlen(a);
	int lb=strlen(b);
	int lc=la+lb;
	memset(c,0,lc+1);
	for(int i=0;i<la;++i)
		for(int j=0;j<lb;j++){
			c[i+j]+=(a[i]-'0')*(b[j]-'0');
			c[i+j+1]=c[i+j]/10;
			c[i+j]%=10;	
		}
	for(int i=0;i<lc;++i){
		c[i]+='0';
	}
	if(c[lc-1]=='0')
		c[lc-1]='\0';
}
int main(){
	char a[200],b[200],c[200];
	scanf("%s%s",a,b);
	strrev(a);
	strrev(b);
	largeMulti(a,b,c);
	strrev(c);
	cout<<c<<endl;
	return 0;
}
	

相关推荐

  1. [Pytorch]:PyTorch中张量乘法大全

    2024-07-17 03:02:03       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 03:02:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 03:02:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 03:02:03       58 阅读
  4. Python语言-面向对象

    2024-07-17 03:02:03       69 阅读

热门阅读

  1. C++——关于new和delete

    2024-07-17 03:02:03       20 阅读
  2. 初识令牌桶

    2024-07-17 03:02:03       16 阅读
  3. shell-sed、awk、grep三剑客常用场景

    2024-07-17 03:02:03       16 阅读
  4. Butch Wilmor与Sunny Williams升空计划截停?

    2024-07-17 03:02:03       19 阅读
  5. MySQL面试题-索引篇

    2024-07-17 03:02:03       22 阅读
  6. ES6 对象的新增方法(十四)

    2024-07-17 03:02:03       20 阅读
  7. powerShell相关

    2024-07-17 03:02:03       16 阅读
  8. Set接口

    2024-07-17 03:02:03       17 阅读
  9. 【Pandas】-Series数据类型

    2024-07-17 03:02:03       25 阅读
  10. 高程值的二维数组生成tiff栅格文件格式

    2024-07-17 03:02:03       27 阅读
  11. C#WPF DialogHost.Show 弹出对话框并返回数据

    2024-07-17 03:02:03       20 阅读
  12. QSFPDD光模块文档解析

    2024-07-17 03:02:03       21 阅读
  13. 【Python 项目】照片马赛克 - 3

    2024-07-17 03:02:03       24 阅读