C语言如何实现大数(任意位)相乘

基本思路:用int型数组num的某一位乘以另外一个int数组num1的所有位,然后将值暂时放在int型数组num2,数组num从第零位开始乘,直到最后一位,每移动一位,数组num2里面的数据更新一次。

//任意两个小于100位数相乘,修改max值可实现更大的数相乘
#include<stdio.h>
#include<string.h>
#define max 101
char arr[max],arr1[max];
int num[max],num1[max],num2[max+1];
void mgpath() {gets(arr);//获取输入的(数字)字符串数组gets(arr1);int n=strlen(arr);//获取数组arr的长度int n1=strlen(arr1);int i;int k=0;for(i=n-1; i>=0; i--) {num[k]=arr[i]-'0';k++;}//将char型arr数组用int型num数组存储,便于计算k=0;for(i=n1-1; i>=0; i--) {num1[k]=arr1[i]-'0';k++;}//enter用来存储进位int enter,temp;int j;memset(num2,0,sizeof(num2));//将输出结果的num2数组初始化//用数组num的每一位去乘以数组num1的所有位,然后放到数组num2中for(i=0; i<n+1; i++) {k=i;enter=0;//进位清零for(j=0; j<n1+1; j++) {temp=num2[k];num2[k]=(num[i]*num1[j]+enter+temp)%10;enter=(num[i]*num1[j]+enter+temp)/10;k++;}}temp=0;//输出数组num2的值,如果前几位为0,则不输出。for(; k>=0; k--) {if(num2[k]==0&&temp==0) {continue;} else {temp=1;}printf("%d",num2[k]);}
}
int main(void) {mgpath();
}

测试结果:
第一行为数据1,第二行为数据2,第三,四行为结果。

C语言如何实现任意数相乘相关推荐

  1. C语言输入一个任意数求各位数的和

    C语言输入一个任意数求各位数的和 int main(void) {int x, r, s = 0;scanf("%d", &x);while (x>0){r = x ...

  2. 高精度乘法 c语言,很大的数相乘怎么办?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include&nbsp #include&nbsp using&nbsp  namespace&nbsp  std; ...

  3. c语言用编译器求两个整数之和的代码,使用OC语言编撰两个超大数相乘或相加的算法的思路和超大正整数相乘的代码...

    使用OC语言编写两个超大数相乘或相加的算法的思路和超大正整数相乘的代码 正文: 在编程中,无论是OC还是C亦或是C++语言,所声明的整数变量都会在内存中占有固定的存储空间,而这些存储空间都是固定的. ...

  4. C语言计算数字乘积根,c语言,求任意一个整数各位数字之积

    点击查看c语言,求任意一个整数各位数字之积具体信息 答:求整数各位和,将整数各个位分离出来的方法(除10取模)很常用. 函数如下 int intsum(int n) { int sum = 0; wh ...

  5. 《C》C语言编程实现任意阶数的“Gold序列”并通过gnuplot绘图——在知道本原多项式的前提下

    关于Gold序列的构建方法 在我之前的博客中已详细介绍,请点击→\rightarrow→C语言编程实现指定阶"Gold序列"并通过gnuplot绘图 一.C语言编程实现任意阶Gol ...

  6. C语言,将一个八进制数转换为十进制数(含延伸)

    C语言,将一个八进制数转换为十进制数(含延伸) 设计思路,将八进制数用字符串的形式输入储存,然后按照每一位对应的8的指数级与该位相乘,再把每一位的结果相加,得到需要转换的十进制数. #include& ...

  7. 怎样用才c语言定义一个三位数,怎样编写一个c语言程序计算任意输入一个3位数的整数的各位数字之和。要求主函数包括输入输出和调用该函数。...

    点击查看怎样编写一个c语言程序计算任意输入一个3位数的整数的各位数字之和.要求主函数包括输入输出和调用该函数.具体信息 答:#include void main(){ int a,sum=0; pri ...

  8. Java 递归解决 quot;仅仅能两数相乘的计算器计算x^yquot; 问题

    Java 递归解决 "仅仅能两数相乘的计算器计算x^y" 问题 /*** 求一个数的乘方* 求x^y,y是一个正整数. 设计算器仅仅能计算两数相乘,不能一次计算n个数相乘. * 知 ...

  9. c语言第七章函数调用题库,c语言题库7-函数.doc

    c语言题库7-函数 主要考核内容:函数 序号题目答案选择题1有以下程序 int f(int a) { return a%2; } main() { int s[8]={1,3,5,2,4,6},i,d ...

最新文章

  1. Atitit java 二维码识别 图片识别
  2. mongo java client_mongodb java客户端的使用,即MongoClient
  3. mint ui datetimepicker 手机端jquery datetimepicker 总结应用
  4. as my sql 后面加表达式_Lambda 表达式有何用处?如何使用?
  5. 二叉树的遍历:前序、中序、后序、层次遍历(仅例题)
  6. 【 .NET Core 3.0 】框架之三 || swagger的使用
  7. nodejs计算时间间隔_Javascript计算时间差的函数分享
  8. 20、在Linux中实现类似windows中获取配置文件的函数GetProfileString
  9. 苹果Mac移动复制文件效率工具:Yoink
  10. pyQt4导入问题:ImportError: No module named PyQt4
  11. 什么是AEC-Q200?AEC-Q200的认证对象和测试项目
  12. 使用DirectSound播放MP3文件
  13. 2022年汽车驾驶员(技师)考题模拟考试平台操作
  14. angr源码分析——cle.Loader类
  15. end kernel panic not syncing
  16. 对于产业互联网的认识,直接关系着我们究竟会以怎样的心态来看待它
  17. FBI针对HTTPS网络钓鱼发布警告
  18. 野火STM32F1开发板 IIC 0.96OLED 波形显示
  19. 【爬虫学习笔记day03】1.1. (了解)通用爬虫和聚焦爬虫+通用搜索引擎(Search Engine)工作原理+聚焦爬虫
  20. java根据经纬度坐标计算两点的距离算法,与百度地图测距工具相符

热门文章

  1. T144基于51单片机简易上下限液位报警器Proteus设计、keil程序、c语言、源码
  2. 让图片和文字居中对齐的方法
  3. Nim 语言的web框架jester感觉像坨屎
  4. uni-app -- 授权获取个人信息-登录注册流程
  5. 单片机如何获得5V电源
  6. 电子学——第002课:基础知识(电阻、电压、电流)
  7. 反编译828D PLC的工程文件(*.ptp)
  8. C51 项目笔记 |Mifare RFID-RC522模组实验
  9. FPS游戏自动瞄准敌人头部?是如何实现的(三)准星算法与实现自动瞄准
  10. bigemap软件功能