C语言高精度乘法

前言

菜鸟的学习笔记,在之前就有做过高精度的乘法运算以及高精度阶乘运算,现在再写一遍加深一下印象。有错指出,虚心接受。


一、思考如何实现高精度乘法

因为C语言中无法直接计算很大的数字,所以另辟蹊径,用数组存储大数字,然后一位一位进行计算,就像用笔计算一样。这是大致的思考方向,接下来就用代码来实现。

二、代码实现

1.设置好需要的数组和一些变量

这里我们用a和b数组来存储需要计算的两个大数字,因为在C语言中字符数组可以直接输入字符串进去,如果用数字数组的话就需要一位一位去输入,很麻烦。但是这样存进去的数字是字符形式的,所以用第三块代码来转换为数字并存储到num1和num2数字数组中,并从最后一个位置存方便计算。

	int num1[1000]={
   
   0},num2[1000]={
   
   0},num[1000]={
   
   0},sum[1000]={
   
   0};
	char a[1000]={
   
   0},b[1000]={
   
   0}; 
	
	scanf("%s%s",a,b);
	int l1=strlen(a);
	int l2=strlen(b);
	
	int i=0;
	for(;i<l1;i++)
	num1[999-i]=a[l1-1-i]-'0';
	for(i=0;i<l2;i++)
	num2[
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值