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. (C++)1045 快速排序 非满分
  2. 数据库基础笔记(MySQL)6 —— 基础事务
  3. MATLAB实战系列(三十八)-基于K-means聚类算法的MATLAB图像分割
  4. 程序员不是神……心态决定一切(转载)
  5. 图论复习——最小生成树MST
  6. Python字符串| 带示例的format()方法
  7. cloudera-quickstart-vm-5.13.0-0-virtualbox 中文显示乱码
  8. [css] 说说你对GPU的理解,举例说明哪些元素能触发GPU硬件加速?
  9. signature=1610c03482e0c6557f7ec99f0ceeae85,Vpdes Permit No. Va006557
  10. 那是我夕阳下的奔跑--一个萌新的觉醒
  11. php 超大整数计算,PHP int 超大溢出整数的 加减运算函数,如果有更好的方法欢迎探讨...
  12. linux并发控制方法,linux系统并发控制
  13. python用openpyxl模块操作Excel学习笔记
  14. EmguCV方形答题卡识别
  15. vim 配置(有插件)
  16. 组件、Prop属性的基本用法
  17. doodoo.js配置教程 1
  18. 喜欢游戏的人,福利来啦,这个岗位可以边打游戏边工作
  19. python:操作文档——TXT篇
  20. Noise2Noise的一些学习总结

热门文章

  1. [附源码]Nodejs计算机毕业设计洗浴管理系统Express(程序+LW)
  2. h5 神策埋点_神策Android全埋点方案分析
  3. Ubuntu外接显示器设置开机镜像显示
  4. angularJS实战之小案例--随机抽奖
  5. dsm系统python需要安装的第三方库
  6. 数理逻辑蕴含_数理逻辑(1)——命题逻辑的基本概念
  7. window class, OO
  8. Docker Hub
  9. firefox apk android,firefox nightly APK
  10. fmc接口定义_Xilinx FPGA的FMC接口