洛谷高精度
快乐平凡的小熙
此账号不再更新
展开
-
高精度加减乘中易错的模板
一,高精度乘法 for(int i=1;i<=lena;i++) { for(int j=1;j<=lenb;j++) { c[i+j-1]+=a[i]*b[j];//均为加 c[i+j]+=c[i+j-1]/10; c[i+j-1]%=10; } } ①两套循环和之前的加减不是一样的 ②必定是c[i+j-1]+=a[i]*b[j];而不是c[i+j-1]=a[i]*b[j];后者他会覆盖数据的。 ③进位的操作必然是c[i+j]+=c[i+j原创 2021-11-01 23:09:28 · 125 阅读 · 0 评论 -
高精度乘法
#include<bits/stdc++.h> using namespace std; char str1[505];char str2[505]; int a[505];int b[505];int c[505]; int main() { scanf("%s",str1);scanf("%s",str2); int lena=strlen(str1);int lenb=strlen(str2); for(int i=0;i<lena;i++) a[lena-i]=str1[.原创 2021-11-01 22:16:27 · 90 阅读 · 0 评论 -
高精度的减法
一,着力点:负数 思想:模板的套用变化 交换数组的内容; 二,方法:交换的方法 字符型数组的交换——strcmp; 三,布尔判断特大字符串的数 思路:先判断长度然后判断大小 bool compare(char str1[],char str2[]) { if(strlen(str1)!=strlen(str2))return strlen(str1)>strlen(str2); for(int i=0;i<strlen(str1);i++) { if(str原创 2021-10-31 23:41:35 · 126 阅读 · 0 评论 -
高精度加法
要点一:存储,没有关键字有能力去存储那么大的一个数,数组int型同样没屁用,所以这里我们的字符串数组便出场了。 要点二:利用for循环实现二维数组的字符串个个位数转到数组int里面去。 int 型,int[4]他存储的便是从右边的各位开始数第四为的数。 int 的初始下标一定要从1开始,不然过于麻烦,字符串的下标是没办法了才从0开始的。 模板 la=strlen(str1);lb=strlen(str2); for(int i=0;i<la;i++) a[la-i]=str1原创 2021-10-31 20:30:29 · 121 阅读 · 0 评论