当前位置:网站首页>学习记录——高精度加法和乘法
学习记录——高精度加法和乘法
2022-07-07 07:33:00 【昨夜太平长安_】
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
const int maxn = 1000;
int A[maxn], B[maxn], C[maxn];
int main()
{
string a, b;
cin >> a >> b;
int len = max(a.size(), b.size());//结果的位数
//反向保存
for (int i = a.length() - 1; i >= 0; --i)
A[a.length()-i] = a[i] - '0';
for (int i = b.length() - 1; i >= 0; --i)
B[b.length()-i] = b[i] - '0';
//相加
for (int i = 1; i <= len; ++i)
{
C[i] += A[i] + B[i];
//处理进位
C[i + 1] = C[i] / 10;
C[i] %= 10;
}
if (C[len+1])//进位了则长度加1
len++;
for (int i = len ; i >= 1; --i)//反向输出
cout << C[i];
return 0;
}#include <iostream>
using namespace std;
const int maxn =10000;
int a[maxn], b[maxn], c[maxn];
int main()
{
string x, y;
cin >> x >> y;
int lx = x.length();
int ly = y.length();
//反向保存
for (int i = lx - 1; i >= 0; --i)
a[lx - i] = x[i] - '0';
for (int i = ly - 1; i >= 0; --i)
b[ly - i] = y[i] - '0';
//计算贡献--a[i]*b[j]的结果在第i+j-1位上
for (int i = 1; i <= lx; ++i)
for (int j = 1; j <= ly; ++j)
c[i + j - 1] += a[i] * b[j];
int len = lx + ly;//乘积的位数不超过两数位数之和
//处理进位
for (int i = 1; i <= len; ++i)
{
c[i + 1] += c[i] / 10;
c[i] %= 10;
}
//去掉前导0
while (!c[len])
len--;
//输出
for (int i = max(1,len); i >= 1; --i)
cout << c[i];
return 0;
}边栏推荐
- Apprentissage avancé des fonctions en es6
- Huffman encoded compressed file
- Finally, there is no need to change a line of code! Shardingsphere native driver comes out
- Can I open a stock trading account online? Is it safe
- [original] what is the core of programmer team management?
- The new activity of "the arrival of twelve constellations and goddesses" was launched
- 2016 CCPC Hangzhou Onsite
- Bit operation ==c language 2
- MongoDB创建一个隐式数据库用作练习
- Check the example of where the initialization is when C initializes the program
猜你喜欢

使用BigDecimal的坑

Deep understanding of UDP, TCP

EXT2 file system

ORM模型--数据记录的创建操作,查询操作

高数_第1章空间解析几何与向量代数_向量的数量积

ORM -- database addition, deletion, modification and query operation logic

Natapp intranet penetration
![[learning notes - Li Hongyi] Gan (generation of confrontation network) full series (I)](/img/94/b4df1ce2861a851fcd8de3e08540b0.png)
[learning notes - Li Hongyi] Gan (generation of confrontation network) full series (I)

Video based full link Intelligent Cloud? This article explains in detail what Alibaba cloud video cloud "intelligent media production" is

Introduction to energy Router: Architecture and functions for energy Internet
随机推荐
MCU与MPU的区别
Luogu p2482 [sdoi2010] zhuguosha
Or in SQL, what scenarios will lead to full table scanning
STM32基础知识—内存映射
ISP、IAP、ICP、JTAG、SWD的编程特点
China's first electronic audio category "Yamano electronic audio" digital collection is on sale!
[ORM framework]
Bit operation ==c language 2
Sword finger offer II 107 Distance in matrix
Check the example of where the initialization is when C initializes the program
Horizontal split of database
[learning notes - Li Hongyi] Gan (generation of confrontation network) full series (I)
STM32中AHB总线_APB2总线_APB1总线这些是什么
Some test points about coupon test
Some thoughts on the testing work in the process of R & D
Internship log - day04
Wallys/IPQ6010 (IPQ6018 FAMILY) EMBEDDED BOARD WITH ON-BOARD WIFI DUAL BAND DUAL CONCURRENT
Introduction to uboot
Bean operation domain and life cycle
Three years after graduation