高精度
清亦留尘
这个作者很懒,什么都没留下…
展开
-
【NOIP1999普及组】回文数 C++题解
题目描述:若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数。又如:对于10进制数87:STEP1:87+78 = 165STEP2:165+561 = 726STEP3:726+627 = 1353STEP4:1353+3531 = 4884在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。写一个程序,给定一个N(2<=N&l原创 2022-01-25 09:46:30 · 783 阅读 · 0 评论 -
【高精度】高精度除以高精度 C++题解
题目描述:输入两个正整数,求它们的商和余数。分析:高精度除以高精是用减法模拟除法,对被除数的每一位都减去除数,一直减到当前位置的数字小于除数。代码:#include<bits/stdc++.h>using namespace std;#define MAX 105int a[MAX],b[MAX],c[MAX],d,i;void init(int a[]){ string s; cin>>s; a[0]=s.length(); for(int i原创 2021-08-04 19:25:32 · 2523 阅读 · 0 评论 -
【高精度】高精度除以低精度 C++题解
题目描述:输入两个正整数,求它们的商(做整除)。分析:做除法时,每一次的商的值都在0~9之间,每次求得的余数连接以后的若干位得到新的被除数,继续做除法。因此,在做高精度除法时,要涉及到乘法运算和减法运算,还有移位处理。当然,为了程序简洁,可以避免高精度乘法,用0~9次循环减法取代得到商的值。这里,我们讨论一下高精度数除以单精度数的结果,采取的方法是按位相除法。话不多说,上代码:#include<bits/stdc++.h>using namespace std;#def原创 2021-08-01 14:50:15 · 1860 阅读 · 2 评论 -
【高精度】高精度乘法 C++题解
题目描述:给出两个高精度整数,均不超过300位。求他们的乘积。输入格式:两行,表示两个不超过300位的整数。输出格式:一个整数,表示乘积。样例输入:1234567890098765432100样例输出:1219326311126352690000代码:#include<bits/stdc++.h>using namespace std;int main(){ char str1[256],str2[256]; int a.原创 2021-08-01 14:23:27 · 129 阅读 · 0 评论 -
【高精度】高精度减法 C++题解
题目描述:输入两个整数a,b(a,b的位数都小于300位)求a-b的值。输入格式:两行,各有一个不超过300位的整数。输出格式:a-b的差值。样例输入:800900样例输出:-100代码:#include<bits/stdc++.h>using namespace std;#define MAX 305//定义数字位数 string sd,se,sa; int a[MAX],b[MAX],c[MAX],mc,me,mz,n,mo=0;.原创 2021-07-30 14:41:46 · 318 阅读 · 0 评论 -
【高精度】高精度加法 C++题解
题目描述:给出两个整数a,b;求他们的和。a,b的位数不超过300位。输入格式:第一行一个整数a第二行一个整数b输出格式:输出只有一行,为两个整数的和。样例输入:101000000000000203000000000000样例输出:304000000000000代码:#include<bits/stdc++.h>using namespace std;#define MAXN 305int a[MAXN],b[MAXN],c[M.原创 2021-07-30 14:30:53 · 330 阅读 · 0 评论 -
【高精度】阶乘之和 C++题解
题目描述:用高精度计算出S = 1! + 2! + 3! + …… + n!(n≤50)。其中“!”表示阶乘,例如:5! = 5 × 4 × 3 × 2 × 1。输入格式:一个正整数n。输出格式:一个正整数S,表示计算结果。样例输入:3样例输出:9代码:#include<bits/stdc++.h>using namespace std;#define MAX 2005 int a[MAX],b[MAX],c[MAX],sum[MAX...原创 2021-07-30 14:17:21 · 2684 阅读 · 0 评论