1051:A × B problem 大数相乘
输入
数据的第一行是整数T(1 ≤ T ≤ 20),代表测试数据的组数。
接着有T组数据,每组数据只有一行,包括两个非负整数A和B。
但A和B非常大,Redraiment能保证这些数用long来保存一定会溢出。
但A和B的位数最大不会超过100位。
输出
对应每组测试数据,你都要输出两行:
第一行为:"Case #:", # 代表这是第几组测试数据。
第二行是一个等式:"A * B = Sum", Sum 代表 A × B 的结果。
你要注意这个等式里包含了几个空格。
要求每组数据之间都需要保留一个空行。
样例输入
2
1 2
123456789 987654321
样例输出
Case 1:
1 * 2 = 2
Case 2:
123456789 * 987654321 = 121932631112635269
题目来源
ZJGSU
对于两个大数相乘,和一个大数乘上一个int有相识之处,要先把两个大数翻转一下,在进行模拟就ok了,
代码范例:
#include <stdio.h>
#include <string.h> #define N 210
int turn (char a[], int b[]); int main ()
{
int n, i, j, lena, lenb, yu, s;
char a[N], b[N];
int sum[N], A[N], B[N], l = ; scanf ("%d", &n); while (n --)
{
scanf ("%s %s", a, b);
if (l)
printf ("\n");
printf ("Case %d:\n%s * %s = ", ++l, a, b);
memset (sum, , sizeof(sum));
memset (B, , sizeof(B));
memset (A, , sizeof(A));
lena = turn(a, A);
lenb = turn(b, B); for (i=; i<lena; i++)
{
yu = ;
for (j=; j<N; j++)
{
s = sum[i+j] + yu + A[i] * B[j];
sum[i+j] = s % ;
yu = s / ;
}
} i = N - ;
while (sum[i] == )
i--;
for (; i>=; i--)
printf ("%d", sum[i]);
printf ("\n");
} return ;
} int turn (char a[], int b[])
{
int len, i, j;
len = strlen(a); for (i=, j=len-; i<len; i++,j--)
b[i] = a[j] - ''; return len;
}
1051:A × B problem 大数相乘的更多相关文章
- A+B and A*B problem 大数相加 相乘 模拟
A+B and A*B problem 大数相加 相乘 模拟 题意 给你两个数a和b,这两个数很大,然后输出这两个数相加的和,相乘的积. 解题思路 模拟,但是还是搜了搜代码实现,发现这个大佬写的是真的 ...
- POJ 2389 Bull Math(水~Java -大数相乘)
题目链接:http://poj.org/problem?id=2389 题目大意: 大数相乘. 解题思路: java BigInteger类解决 o.0 AC Code: import java.ma ...
- UVA 10106 Product (大数相乘)
Product The Problem The problem is to multiply two integers X, Y. (0<=X,Y<10250) The Input The ...
- 大数相乘算法C++版
#include <iostream> #include <cstring> using namespace std; #define null 0 #define MAXN ...
- java版大数相乘
在搞ACM的时候遇到大数相乘的问题,在网上找了一下,看到了一个c++版本的 http://blog.csdn.net/jianzhibeihang/article/details/4948267 用j ...
- Linux C/C++ 编程练手 --- 大数相加和大数相乘
最近写了一个大数相乘和相加的程序,结果看起来是对的.不过期间的效率可能不是最好的,有些地方也是临时为了解决问题而直接写出来的. 可以大概说一下相乘和相加的解决思路(当然,大数操作基本就是两个字符串的操 ...
- Karatsuba乘法--实现大数相乘
Karatsuba乘法 Karatsuba乘法是一种快速乘法.此算法在1960年由Anatolii Alexeevitch Karatsuba 提出,并于1962年得以发表.此算法主要用于两个大数相乘 ...
- leetcode 43 Multiply Strings 大数相乘
感觉是大数相乘算法里面最能够描述.模拟演算过程的思路 class Solution { public String multiply(String num1, String num2) { if(nu ...
- Java 大数相乘、大数相加、大数相减
思路来源:: https://blog.csdn.net/lichong_87/article/details/6860329 /** * @date 2018/6/22 * @description ...
随机推荐
- 手把手编写自己的PHPMVC框架
1 什么是MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller ...
- 基于DM642 RAW采集格式的视频驱动开发及应用
摘 要:为解决C64X系列数字信号处理器(DSP)视频驱动不能应用于原始数据格式(RAW)采集格式的问题,设计了DM642和电耦合元件(CCD)高清传感器的数据传输接口,并分析.修改用于标准格式的视频 ...
- BusyBox下ftpget的使用方法
在终端输入ftpget命令,可以得到以下帮助信息: BusyBox v1.17.4 (2010-12-22 10:59:18 CST) multi-call binary. Usage: ftpget ...
- javascript if(xx)
js判断某个值知否存在或者为空,可以直接用if(xx)过滤. <!DOCTYPE html> <html> <head> <meta charset=&quo ...
- HDU 2222 Keywords Search(瞎搞)
Keywords Search Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others ...
- HDU3555 Bomb —— 数位DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 Bomb Time Limit: 2000/1000 MS (Java/Others) M ...
- uptime详解,最通俗的说明了cpu平均负载
今天又个网友问uptime的三个平均负载值具体要怎么理解,发现要自己解释还真不知道怎么表达~~~~,下面到网上找了篇文章给大家分享: uptime命令,有两大用处,一个是看您的机器的运行时间,另一 ...
- MYSQL初级学习笔记九:MySQL索引的使用!(视频序号:初级_51)
知识点十一:索引的使用(51) 什么是索引: 索引的定义: 在关系型数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行的更快.索引的作用相当于图书的目录,可以 根据目录中的页码 ...
- bzoj 2301 [HAOI2011]Problem b(莫比乌斯反演+分块优化)
题意:对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 1≤n≤50000,1≤a≤b≤50000, ...
- ul下的li浮动,如何是ul有li的高度
此时ul展示的界面为: ①给ul加上一个样式,display:inline-block; <html> <head> <title>float</title& ...