高精度乘法(用数组模拟笔算)

C语言中的高精度乘法 大一新生初谈C语言中的高精度乘法 1为什么需要高精度乘法及其实质 2高精度乘法原理 3高精度乘法的实现 a 运算前的准备 b一位位地运算 c处理进位 d输出结果 4整体的代码 5结语 大一新生对高精度乘法的一种通俗理解。。 阅读详情

/*
 
高精度乘法
输入:两行,每行表示一个非负整数(不超过10000位)
输出:两数的乘积。 
*/

#include 
<stdio.h>
#include 
<string.h>
#include 
<stdlib.h>
#include 
<memory.h>

#define MAX 10001

int bigchenfa(int *sum,int *a,int *b,int lsum,int la,int lb)
{
    
int i,j,k ;
    memset(sum,
0,sizeof(sum));
    lsum 
= 0 ;
    
for(i=1 ; i<= la ; i++) /*用数组模拟运算*/
    
for(j=1,lsum=i-1; j<= lb ; j++)
    sum[
++lsum] += b[j] * a[i] ;
    
    
for(i=1 ; i<= lsum ; i++)/*进位处理*/
    
if (sum[i] >= 10)
    {
               
if ( sum[lsum] >= 10)
               lsum 
++ ;
               sum[i
+1] += sum[i] / 10 ;
               sum[i] 
%= 10 ;
    }
    
    
return lsum ;
}

    
int main(void)
{
  
int a[MAX]={0},b[MAX]={0},sum[MAX*2]={0} ;
  
int la=0,lb=0,lsum=0;
  
int i,j ;
  
char sa[MAX],sb[MAX] ;
  scanf(
"%s %s",sa,sb);
  
  la 
= strlen(sa);
  lb 
= strlen(sb);
  
  
for(i=1,j=la-1; i<= la ; i++,j--)
  a[i] 
= sa[j] - '0' ;
  
for(i=1,j=lb-1; i<= lb ; i++,j--)
  b[i] 
= sb[j] - '0' ;
  
  lsum 
= bigchenfa(sum,a,b,lsum,la,lb) ;
  
  
for(i=lsum ; i>= 1 ; i--)
  printf(
"%d",sum[i]);
  
  printf(
" ");
  
  system(
"pause");
  
  
return 0 ;
}
 
C语言高精度乘法 如何用C语言写高精度乘法,高精度乘法需要用到函数调用,指针等知识 立即下载

相关推荐

高精度乘法实现

一般的乘法大家都会计算,但是如果数据位十几亿,上百亿乃至上万亿相乘怎么办?这就需要高精度算法的技术了。本文档包含高精度乘法的具体实验代码,经过严格测试后的实验结果。非常有用哟

C语言实现高精度乘法

大一小白尝试C语言高精度乘法 一、高精度乘法是什么 高精度乘法就是对于普通数据类型无法表示的大整数进行乘法运算。 二、为什么需要高精度乘法 在C语言中,常用的数据类型有int, long long, double等,但是这些数据类型的大小有限,当输入的数据过大,这些数据类型就无法实现其功能,强行使用可能会出现错误。在这种情况下,我们需要高精度乘法来完成运算。 三、如何实现高精度乘法 为了更方便的理解高精度乘法,我们先从熟悉的竖式乘法开始。首先我们知道,电脑笨笨的,普通数据类型算不了大数乘法。但是小学的时候我

RedhatJongkhurun的博客 5309

高精度乘法

高精度乘法的.net代码,采用C语言编写,保证运行

C语言丨小 学 数 学(二):高精度乘法

今天让我们来当一回小学生吧~(误) 本文解决的问题是如何实现多位数字的高精度乘法。

weixin_60921752的博客 1580

高精度计算(c语言实现)

关于高精度的基本运算,包括加减乘除和阶乘,是用c语言实现的,绝对的好东西

高精度运算(加,减,高精乘低精,高精乘高精)

高精度运算(加减,高精乘低精,高精乘高精),C语言的,有需要的就看一看,适合新手学习,(注释比代码还多)欢迎大家下载!!

C语言——高精度乘法

这里考虑结果的位数是最低位数,由于数组的特性,两个数字的最低位在数组中是作为第零位的,而且在数组中两个数的每一位相当于之前都是减少了一位,如果是10 * 10两个两位数相乘理论上结果是三位,但是如果将两数字的位数相加作为结果的位数,那结果就是四(2 + 2)位数,这样就不对了,但是由于数组的特性,将两数字位数相加改成两数字当前索引相加就可以了,10 * 10,索引相加是(1 + 1) = 2,而二作为索引是3位数,结果是三位数,这样就对了。这里,我们有两个数n1和n2,它们分别以字符串的形式存储,

Stewie Lee的博客 3943

LVGL在RTOS下的线程安全实践:从卡死到流畅的界面切换

本文探讨LVGL在RTOS环境下的线程安全实践,重点分析FreeRTOS多任务同步机制,包括互斥锁、任务通知和消息队列方案。通过实际案例展示如何避免界面卡顿和系统死锁,实现从卡死到流畅的界面切换,为嵌入式GUI开发提供可靠的适配解决方案。

uran的专栏 1111

1001.高精度乘法的处理方法

高精度乘法的处理方法 1.问题的输入,由于是大整数,所以其范围一般超过了整型和实型所能表示的范围,故不能用整型或者实型来接受输入,故考虑字符串或者数组。    数组:a.优点:一位存储,可直接进行四则运算                b。缺点:输入不方便。    字符串:a.优点:输入方便                    b。缺点:输入后要转换成相应的数字。 一般选择字符串来进

austin_anzheng的博客 346

FreeCAD源码分析:Sketcher模块

Sketcher模块基于Part模块功能实现了特征编辑(Feature Editing)建模的功能。这类参数化建模系统主要包括几何表示、约束求解器等两大组成部分。

国产CAx(CAD/CAE/CAM)软件研发 6523

RK3588设备树节点实战:从零配置音频与显示模块(ES8388+DSI0)

本文详细介绍了在RK3588平台上配置音频编解码器ES8388和显示接口DSI0的设备树节点实战。通过具体案例拆解设备树节点的编写逻辑与调试技巧,包括音频路由与声卡配置、DSI控制器基础配置、视频通路路由配置以及电源管理与时钟树设计。文章还提供了调试工具与实战技巧,帮助开发者快速解决常见问题。

weixin_42525637的博客 351

高精度乘法———列表法

/*列表法——高精度乘法*/ #include<stdio.h> #include<string.h> #define maxsize 101 void compute(char *a,char *b,char *c){ int i,j,carry,sum,m=strlen(a)-1,n=strlen(b)-1; for(i=0;i<=m;i++)a[i]-='0'; f

Loe_Pold的博客 707

戴尔G3/AWCC用户必看:揪出WMI Provider Host疯狂占用的元凶,附5.4.35旧版回退保姆级教程

本文针对戴尔G3/AWCC用户遇到的WMI Provider Host异常占用问题,提供了详细的诊断方法和解决方案。通过分析AWCC 5.5.14.0版本的资源占用问题,指导用户回退到稳定版AWCC 5.4.35,并附上保姆级教程和预防措施,帮助用户彻底解决系统卡顿问题。

weixin_30892037的博客 561

POJ 1001 求高精度幂

高精度问题  初学的时候觉得很恶心。 去掉小数点,原数组存在另一个数组,将小数点标记。 用中间数组进行存储,模仿笔算乘法 去掉前导0 后导0 用up down  #include #include #include using namespace std; #define MAX 26*5 char str[6]; int res[MAX],a[MAX],b[

DisCrany的博客 473

NA400与昆仑通态MODBUS/TCP通讯调试说明

点击增加设备通道,弹出窗口进行设置,通道类型选择“0区输出继电器”,通道地址为1,通道个数为1,读写方式为读写。点击增加设备通道,弹出窗口进行设置,通道类型选择“4区输出寄存器”,数据类型选择“16位 无符号二进制”,通道地址为21001,通道个数为1,读写方式为读写。5.添加设备通道:双击莫迪康MODBUSTCP子设备,点击添加设备通道,根据Modbus规约地址表进行参数的设置,表格可在NAPro软件帮助中查看,如下图所示。然后可以在设备通道调试数据中观察到Q1的值为1,NW1的值678,表示通讯成功。

weixin_44281509的博客 2490

STM32寄存器级电机驱动:DRV8833 H桥与PWM调速原理

电机驱动是嵌入式控制系统的核心基础能力,其本质是微控制器通过数字信号精确控制功率器件的开关时序。理解H桥电路结构、反电动势防护机制及PWM调制原理,是实现可靠直流电机控制的前提。DRV8833作为典型双H桥驱动芯片,支持快衰减与慢衰减两种PWM调速模式,分别对应不同的电流泄放路径与动态响应特性。在STM32平台上,需结合时钟树配置、GPIO复用、定时器寄存器(PSC/ARR/CCR)精确计算,将抽象的转速需求转化为可执行的硬件操作。该技术广泛应用于智能小车、机器人关节、工业定位系统等实时运动控制场景,是掌握

weixin_42613017的博客 676

C语言羁绊之高精度乘法计算

很大一部分借鉴了(C语言的高精度算法)这一博客,你们可以去看看。欢迎指正!!!1,定义    对于计算机无法用普通数据类型(如:longint)表示的大整数进行乘法运算,称为高精度算法。这里的高精度乘法主要指按位模拟运算,实际上就是模拟乘法的过程,也就是笔算的过程。(你拿张纸就可以轻易的模拟出来,但是你原来可能没发现过其中的规律)。2,原理    既然是一个很大的数,我们便不能够在用简单的数据类型...

zlhcsm的博客 1603

使用FPGA实现MIPI DSI接口

通过使用FPGA,我们可以实现MIPI DSI接口,并在FPGA上生成相应的时序和电平转换电路。通过使用FPGA,我们可以实现MIPI DSI接口,并在FPGA上生成相应的时序和电平转换电路。在本文中,我们将探讨如何使用FPGA实现MIPI DSI接口,并提供相应的源代码。根据不同的发送状态,我们设置相应的输出信号。请注意,这只是一个基本的示例,用于说明如何使用FPGA实现MIPI DSI接口的发送功能。请注意,这只是一个基本的示例,用于说明如何使用FPGA实现MIPI DSI接口的发送功能。

ZdqDeveloper的博客 1698

高精度算法——高精度乘法

高精度乘法,会比高精加法、减法稍微难那么一点点,主要是乘法要用到,高精度加法去做,也就是说,如果高精度加法没有学好,高精度乘法也就会有点难理解了,但是吧,你既然搜到了并点到了这里,就说明你已经会高精度加法了,既然你已经会高精度加法了,就说明你知道为什么要用高精度了,就不再多说废话了。 顺便把这题完整的代码也附上把:...

m0_62999279的博客 8587

lammps教程:MS转data文件出错原因分析及解决办法

使用ms建模是lammps建模的一种重要方法,但是ms建模转换为data过程中经常会出现各种各样的错误。 ms模型转data文件流程分两部分,一是ms建模、forcite设置力场并导出car文件,二是msi2lmp将car转为data文件。 任何一个环节出错都会导致无法得到data文件,最容易出错的是forcite力场设置环节。 forcite力场设置出错原因有很多,一个原因是缺乏某类原子的力场参数。 msi2lmp软件只能转换cvff或pcff力场的car文件,因此,如果力场中不包含某类原子的参数,在设置

lammps_jiayou的博客 5062

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C++ 的高精度乘法

为什么需要高精度计算 对于 C++ 而言,最大的数据为 long long(64b,8位),对于超过 8B 的数据,C++ 没有对应的数据类型进行表示。所以我们需要知道高精度计算。更详细的解释,可以参考这个网页https://blog.youkuaiyun.com/justidle/article/details/104414459。 高精度乘法计算原理 在读小学时,我们做乘法都采用竖式方法,如图 1 ...

努力中的老周的专栏 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

高精度算法(乘法)

在本篇文章中会详细介绍高精度乘法,希望对您有用

LAW2956的博客 2978

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

高精度算法——数组模拟(加、减、乘、除)

1、高精度算法是什么 2、高精度运算易错点 3、高精度加法 4、高精度减法 5、高精度乘法 1、两个高精度整数相乘 2、阶乘 —(n个低精度整数相乘,最终结果是高精度整数) 3、Hanoi双塔问题——2*(pow(2,n)-1)——暴力的话会爆内存 6、高精度除法 1、高精度÷低精度

你相信光吗 1万+

【C++】高精度乘法

前面写了高精度加减法,今天来看看高精度乘法(高精度除法后面再写)。

Happynetizens.happyheart的优快云博客 1246
上一篇: 整数的性质及其应用
下一篇: 整数分解之和最大问题(全分成3,少分成2)
oopos
博客等级 码龄19年 21粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值