/*
大数相乘:
因为是大数,乘积肯定超出了能定义的范围,因此考虑用数组存储,定义三个数组,分别存储乘数,被乘数和积。
规则与平常手算一样,从个位开始分别与被乘数的每一位相乘,但是有一点不同的是:我们先不考虑进位。直接将
个十百千位存储在乘积数组中。乘数的每一位与被乘数相乘时应向左移一位。对应为相加结果存储在乘积数组中,
最后统一考虑进位问题
*/ #include<stdio.h>
#include<conio.h>
int main() {
//假设乘积不会超过一千位;
long m, n;//输入两个数
int a[], b[], c[];
int i = , j = , k = , p, q, flag;
scanf("%ld%ld", &m, &n);
while (m>) {//将m的各位存入数组
a[i++] = m % ;
m = m / ;
}
while (n>) {
b[j++] = n % ;
n = n / ;
}
for (k = ; k<; k++) {
c[k] = ;
}//初始化c数组;
for (p = ; p<i; p++) {
flag = p;//表示此轮乘,从c的那个位置开始保存;
for (q = ; q<j; q++) {
c[flag++] += a[p] * b[q];
}
}
for (i = ; i<flag; i++) {
if (c[i] >= ) {
c[i + ] += c[i] / ;
c[i] %= ;
}
}
while (c[flag] >= ) {//最后一次进位结果单独处理
c[flag + ] = c[flag] / ;
c[flag++] %= ;
}
for (i = flag; i >= ; i--) {
if (c[i] == && i == flag) {
}
else {
printf("%d", c[i]);
}
}
getch();
return ;
}

大数相乘----C语言的更多相关文章

  1. POJ 2389 Bull Math(水~Java -大数相乘)

    题目链接:http://poj.org/problem?id=2389 题目大意: 大数相乘. 解题思路: java BigInteger类解决 o.0 AC Code: import java.ma ...

  2. 大数相乘算法C++版

    #include <iostream> #include <cstring> using namespace std; #define null 0 #define MAXN ...

  3. java版大数相乘

    在搞ACM的时候遇到大数相乘的问题,在网上找了一下,看到了一个c++版本的 http://blog.csdn.net/jianzhibeihang/article/details/4948267 用j ...

  4. Linux C/C++ 编程练手 --- 大数相加和大数相乘

    最近写了一个大数相乘和相加的程序,结果看起来是对的.不过期间的效率可能不是最好的,有些地方也是临时为了解决问题而直接写出来的. 可以大概说一下相乘和相加的解决思路(当然,大数操作基本就是两个字符串的操 ...

  5. Karatsuba乘法--实现大数相乘

    Karatsuba乘法 Karatsuba乘法是一种快速乘法.此算法在1960年由Anatolii Alexeevitch Karatsuba 提出,并于1962年得以发表.此算法主要用于两个大数相乘 ...

  6. leetcode 43 Multiply Strings 大数相乘

    感觉是大数相乘算法里面最能够描述.模拟演算过程的思路 class Solution { public String multiply(String num1, String num2) { if(nu ...

  7. Java 大数相乘、大数相加、大数相减

    思路来源:: https://blog.csdn.net/lichong_87/article/details/6860329 /** * @date 2018/6/22 * @description ...

  8. 华为上机测试题(大数相乘-java)

    PS:这个不是自己写的,测试OK,供参考. /** * 大数相乘 */ public class BigData { public static void main(String[] args) { ...

  9. 求解Catalan数,(大数相乘,大数相除,大数相加)

    Catalan数 卡塔兰数是组合数学中一个常在各种计数问题中出现的数列.以比利时的数学家欧仁·查理·卡塔兰(1814–1894)命名.历史上,清代数学家明安图(1692年-1763年)在其<割圜 ...

随机推荐

  1. django 建立安全索引

    上篇记录使用“CONCURRENTLY” 命令行执行不锁表索引,对于django, 如何执行呢?这里记录一种方法,修改django迁移文件. 在执行完迁移后,为了方便找到该迁移文件,可以采用指定命名迁 ...

  2. 公司项目redis 项目报错 记事

    异常内容:  Timeout performing GET Key_CacheHSCode, inst: 1, mgr: ExecuteSelect, err: never, queue: 2, qu ...

  3. [洛谷P2962] [USACO09NOV] 灯Lights

    Description Bessie and the cows were playing games in the barn, but the power was reset and the ligh ...

  4. selenium常见的元素定位方法

    一.获取元素 1)通过谷歌浏览器自动的工具访问百度首页,我们可以看到,页面上的元素都是由一行行的代码组成的,它们之间有层级地组织起来,每个元素之间都有不同的标签和值,我们可以通过这些不同的标签和值来找 ...

  5. orm 锁 和 事务

    一 锁 锁的语句 select_for_update() 原生sql语句select * from t1 for update django 语句models.T1.objects.select_fo ...

  6. linux--->阿里云centos6.9安装yii2报错

    阿里云centos6.9安装yii2报错 错误显示:Warning: require(/vendor/autoload.php): failed to open stream: No such fil ...

  7. CTF--HTTP服务--路径遍历(提升root用户权限)

    开门见山 1. 在上次实验取的靶机低用户权限,查看该系统的内核版本 2. 查看该系统的发行版本 3. 查看该内核版本是否存在内核溢出漏洞,并没有 如果有内核溢出漏洞,则可以 4. 在靶机查看/etc/ ...

  8. Android Studio中Gradle sync failed

    问题:Android Studio中更新同步Gradle 失败 Gradle sync failed: Could not find com.android.tools.build:gradle:3. ...

  9. Mysql 安装出现error Nr.1045

    我们在windows下安装mysql时会出现Access denied for user 'root'@localhost'(using password:No)的问题,这个问题是因为你的机器上之前安 ...

  10. .NET Core WebAPI post参数传递时后端的接收方式

    .NET Core WebAPI post参数传递时后端的接收方式 实体类 dynamic动态类型 JObject参数 单值参数(字符串参数) A.前端Post请求代码 $.ajax({ url: & ...