当两个比较大的整数相乘时,可能会出现数据溢出的情形。为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法。具体来说,首先以字符串的形式输入两个整数,每个整数的长度不会超过8位,然后把它们相乘的结果存储在另一个字符串当中(长度不会超过16位),最后把这个字符串打印出来。例如,假设用户输入为:62773417和12345678,则输出结果为:774980393241726.

输入:
  62773417 12345678

输出:
  774980393241726

题目分析

用一个整数数组,来装每一次两个一位数的乘法结果,大数乘法结束后,再解决进位问题,最终倒序输出即可。

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <stdlib.h>
#include <cstdlib>
#include <string.h>
#include <cmath>
using namespace std;
char a[], b[];
int len_a, len_b;
int c[]; void calculate() {
for (int i = ;i < len_a; i++) {
for (int j = ; j < len_b; j++) {
c[i + j] += (a[i]- '') * (b[j] - '');
}
}
int t = ;
for (int i = ; i < ; i++) {
c[i] += t;
t = c[i] / ;
c[i] %= ;
}
}
void pri() {
int i = len_a + len_b - ;
for (; i >= ; i--)
if (c[i] != )
break;//找到第一位非零数字
if (i < )
cout << "";//没有一位是非零数字
for (; i >= ; i--) {
cout << c[i];
}
}
int main() {
scanf("%s", a);
strrev(a);//逆置字符串
len_a = strlen(a); scanf("%s", b);
strrev(b);//逆置字符串
len_b = strlen(b); calculate();
pri();
return ;
}

算法提高 P1001【大数乘法】的更多相关文章

  1. 蓝桥杯算法提高 P1001(大数乘法)

      算法提高 P1001   时间限制:1.0s   内存限制:256.0MB   当两个比较大的整数相乘时,可能会出现数据溢出的情形.为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法. 具体 ...

  2. Java实现 蓝桥杯 算法提高 p1001

    算法提高 P1001 时间限制:1.0s 内存限制:256.0MB 提交此题  当两个比较大的整数相乘时,可能会出现数据溢出的情形.为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法.具体来说 ...

  3. 算法笔记_097:蓝桥杯练习 算法提高 P1001(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 当两个比较大的整数相乘时,可能会出现数据溢出的情形.为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法.具体来说,首先以字符串的形式输入两个整 ...

  4. 算法提高 P1001

    必须感叹下,大数模板就是好用! AC代码: #include <cstdio> #include <cmath> #include <algorithm> #inc ...

  5. C语言 · P1001(大数乘法)

    算法提高 P1001   时间限制:1.0s   内存限制:256.0MB      当两个比较大的整数相乘时,可能会出现数据溢出的情形.为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法.具体 ...

  6. 算法笔记_081:蓝桥杯练习 算法提高 矩阵乘法(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 有n个矩阵,大小分别为a0*a1, a1*a2, a2*a3, ..., a[n-1]*a[n],现要将它们依次相乘,只能使用结合率,求最 ...

  7. 蓝桥 ADV-232 算法提高 矩阵乘法 【区间DP】

      算法提高 矩阵乘法   时间限制:3.0s   内存限制:256.0MB      问题描述 有n个矩阵,大小分别为a0*a1, a1*a2, a2*a3, ..., a[n-1]*a[n],现要 ...

  8. Java实现 蓝桥杯 算法提高 矩阵乘法(暴力)

    试题 算法提高 矩阵乘法 问题描述 小明最近刚刚学习了矩阵乘法,但是他计算的速度太慢,于是他希望你能帮他写一个矩阵乘法的运算器. 输入格式 输入的第一行包含三个正整数N,M,K,表示一个NM的矩阵乘以 ...

  9. Java实现 蓝桥杯VIP 算法提高 高精度乘法

    算法提高 高精度乘法 时间限制:1.0s 内存限制:256.0MB 问题描述 在C/C++语言中,整型所能表示的范围一般为-231到231(大约21亿),即使long long型,一般也只能表示到-2 ...

随机推荐

  1. Linux安装apue.3e(基于ubuntu16.0.4)

    本菜刚刚学习UNIX高级编程,无奈搭建本书编程环境时遇到不少问题,参考了网上各路大神的解决办法,最终解决了问题. (1)下载源代码,可以去官网下载:http://apuebook.com/code3e ...

  2. Docker的大坑小洼(二)

    再谈<Docker的大坑小洼> 今天闲暇看了一下宏亮同学写的一篇<Docker的大坑小洼>,非常受启发.因为Docker的文章真的很多了,但大家如果只是玩一玩,有很多坑是不会碰 ...

  3. C#学习历程(九)[类的定义与声明]

    一.C#中类的声明 在C#中必须先声明类,然后才能在程序中使用. 类的声明格式如下: [类的属性] [访问修饰符] class 类名称 [: 父类名]{    [成员修饰符] 类的成员变量或者成员函数 ...

  4. springboot--常用注解--@configration、@Bean

    @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @inter ...

  5. LeetCode OJ:Add and Search Word - Data structure design(增加以及搜索单词)

    Design a data structure that supports the following two operations: void addWord(word) bool search(w ...

  6. core文件介绍

    原文链接:http://team.eyou.com/?p=27 如有侵犯您的版权,请联系windeal12@qq.com linux下,产生core文件,和不产生core文件的条件: 当我们的程序崩溃 ...

  7. shell脚本实例二

    练习题一:对已经存在的用户做密码的修改等操作 vim  user_ctrl.sh                 ##进行如下编写 #!/bin/bashShow(){        read -p ...

  8. LINUX系统下APACHE中的CGI应用

    该实验环境是在APACHE的配置内容的基础上实现的! 1.安装软件: yum install  php  -y      ##安装完成后,可以在/etc/httpd/conf.d/目录下查看,有php ...

  9. Java多线程编程实战指南(核心篇)读书笔记(三)

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/76686044冷血之心的博客) 博主准备恶补一番Java高并发编程相 ...

  10. Java API操作ZK node

    创建会话 建立简单连接 /** * 测试创建Zk会话 * Created by liuhuichao on 2017/7/25. */ public class ZooKeeper_Construct ...