首页 > 编程语言 >高精度算法

高精度算法

时间:2024-07-20 21:41:46浏览次数:14  
标签:lc 高精度 int s2 s1 算法 str size

加法

include

using namespace std;
string s1, s2;
int a[101], b[101],c[101];
void strtoint(string str,int des[]) {
for (int i = 0; i < str.size(); i++) {
des[str.size() - i] = str[i] - '0';
}
}

int main() {
cin >> s1 >> s2;
strtoint(s1, a);
strtoint(s2, b);
int la, lb, lc;
la = s1.size();
lb = s2.size();
lc = max(la, lb) + 1;
for (int i = 1; i <= lc; i++) {
c[i] = a[i] + b[i] + c[i];
c[i + 1] = c[i] / 10;
c[i] = c[i] % 10;
}
while (c[lc] == 0 && lc > 1) lc--;
for (int i = lc; i >= 1; i--) cout << c[i];

}

减法

include

using namespace std;
string s1, s2;
int a[101], b[101], c[101];
void strtoint(string str, int des[]) {
for (int i = 0; i < str.size(); i++) {
des[str.size() - i] = str[i] - '0';
}
}

int main() {
cin >> s1 >> s2;
strtoint(s1, a);
strtoint(s2, b);
int la, lb, lc;
la = s1.size();
lb = s2.size();
lc = max(la, lb) + 1;
for (int i = 1; i <= lc; i++) {
if (a[i] - b[i] < 0) {
a[i] += 10;
a[i + 1]--;
}
c[i] = a[i] - b[i];
}
while (c[lc] == 0 && lc > 1) lc--;
for (int i = lc; i >= 1; i--) cout << c[i];

}

乘法

include

include

using namespace std;
string s1, s2;
int a[100000], b[100000], c[100000];
void strtoint(string str, int des[]) {
for (int i = 0; i < str.size(); i++) {
des[str.size() - i] = str[i] - '0';
}
}

int main() {
cin >> s1 >> s2;
strtoint(s1, a);
strtoint(s2, b);
int la = s1.size();
int lb = s2.size();
int lc = la + lb;
for (int i = 1; i <= la; i++) {
for (int j = 1; j <= lb; j++) {
c[i + j - 1] += a[i] * b[j];
c[i + j] += c[i + j - 1] / 10;
c[i + j - 1] %= 10;
}
}
while (c[lc] == 0 && lc > 1) lc--;
for (int i = lc; i >= 1; i--) cout << c[i];

}

除法

include

using namespace std;
string s1;
long long b;
int tmp;
short a[100000],c[100000];
void strtoint(string str, short des[]) {
for (int i = 0; i < str.size(); i++) {
des[i+1] = str[i] - '0';
}
}

int main() {
cin >> s1>>b;
strtoint(s1, a);

int la;
la= s1.size();
for (int i = 1; i <= la; i++) {
	c[i] = (tmp * 10 + a[i]) / b;
	tmp = (tmp * 10 + a[i]) % b;
}
int lc = 1;
while (c[lc] == 0) lc++;
for (int i = lc; i <= la; i++) cout << c[i];

cout << "余数: " << tmp << endl;

}

标签:lc,高精度,int,s2,s1,算法,str,size
From: https://www.cnblogs.com/windzhao6/p/18313838

相关文章

  • 算法 图论最短路径
    零、写在前面本文讲述Dijkstra、Bellman-Ford、Floyd-Warshall算法一、分类G(graph):图V(vertex):点E(edge):边一个图可以用数学语言描述为。W(weights):权所以一个图也可以用数学语言描述为。二、作图2.1作图网站(推荐) 在线作图网站:图论作图网站GraphEditor用法:Undirected......
  • 蓝桥杯 算法季度赛2
    T2第一发没判最后一组后没有间隔T3WA了两发,调不出来往后看T5是线段树板子,1A了T4贺了个zfunction板子,WA了两发,调不出来剩下的题都没来得及看丑陋sol3.兽之泪II讨论选不选\(x_n\)比较好些如果讨论的是\(y_n\),在选\(y_i\)的情况下可能会选一些\(>y_i\)......
  • 2024“钉耙编程”中国大学生算法设计超级联赛(1)结题报告1 2 8
    1001循环位移字符串哈希将a展开*2对于每个长度为len_a的序列进行一次hash存储并将其插入set中对于b进行一次哈希对于每个长度为len_a的连续子串进行一次查询点击查看代码#include<bits/stdc++.h>usingnamespacestd;//22222constintN=5e6+10;constintp1......
  • 高精度模板
    高精度模板structBigNum{intval[N],len=1;voidinit(){val[1]=len=1;}BigNumoperator+(constBigNum&x)const{staticBigNumt=*this;t.len=max(t.len,x.len);for(inti=1;i<=t.len;i++)t.val[......
  • 2024“钉耙编程”中国大学生算法设计超级联赛(1)
    发挥相当差,最好笑的是1h没写出一个三维偏序、30min没写出一个字符串哈希。甚至1h没意识到组合数式子推错了。A我写了点阴间东西。假设模式串为ABC,考虑一个形如ABCABCABC的东西,如果长度是\(x\),会贡献\(x-n+1\)个子串。枚举\(i\),从\(i\)把\(T\)分成两部分,一部分......
  • 字符串算法之一:朴素算法找子串
    publicclassStringAlgorithm{publicstaticvoidmain(String[]args){intresult=plainFindSubStr("12345","1234");System.out.println(result);}/***@paramstr*@parampattern*@retu......
  • 代码随想录算法训练营第33天 | 贪心4:452. 用最少数量的箭引爆气球、435. 无重叠区间
    代码随想录算法训练营第33天|贪心4:452.用最少数量的箭引爆气球、435.无重叠区间、763.划分字母区间452.用最少数量的箭引爆气球https://leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons/description/代码随想录https://programmercarl.com/0452.用最......
  • 代码随想录算法训练营第31天 | 贪心3:134.加油站、135.分发糖果、860.柠檬水找零、406.
    代码随想录算法训练营第31天|贪心3:134.加油站、135.分发糖果、860.柠檬水找零、406.根据身高重建队列134.加油站https://leetcode.cn/problems/gas-station/description/代码随想录https://programmercarl.com/0134.加油站.html135.分发糖果https://leetcode.cn/problems......
  • 算法基础课第一章(中)高精度+前缀和+差分
    一、高精度(一)使用高精度的原因在计算机中处理非常大或非常小的数值时,确保计算结果的精确性和准确性。在特定情况下,可以自己实现高精度计算的数据结构和算法,例如使用字符串或数组来表示大数,并实现基本的加、减、乘、除操作。(二)高精度加法1、方法(1)描述:从最低位开始加法计算......
  • 【数据结构初阶】顺序表三道经典算法题(详解+图例)
    Hello!很高兴又见到你了~~~看看今天要学点什么来充实大脑吧——目录1、移除元素【思路+图解】 【总结】2、删除有序数组中的重复项【思路+图解】【总结】3、合并两个有序数组【思路+图解】【总结】 至此结束,ShowTime!1、移除元素【思路+图解】 ......