
基础算法——高精度
Alex_McAvoy
想要成为渔夫的猎手
展开
-
基础算法 —— 高精度计算 —— 高精度除法
【高精除以低精】1.算法分析做除法时,每一次的商的值都在0~9,每次求得的余数连接以后的若干位得到新的被除数,继续做除法。因此在做高精度除法时,要涉及到乘法运算和减法运算以及移位处理。为程序简洁,可以避免高精度乘法,用0~9次循环减法取代得到商的值,对于高精度数除以低精度数,我们采用按位相除法。2.模版#include<iostream>#include<...原创 2018-04-14 12:53:46 · 8516 阅读 · 3 评论 -
计算2的N次方(信息学奥赛一本通-T1170)
【题目描述】任意给定一个正整数N(N≤100),计算2的n次方的值。【输入】输入一个正整数N。【输出】输出2的N次方的值。【输入样例】5【输出样例】32【源程序】#include<iostream>#include<cstring>using namespace std;int main(){ int n;...原创 2018-04-15 22:29:07 · 8952 阅读 · 5 评论 -
大整数减法(信息学奥赛一本通-T1169)
【题目描述】求两个大的正整数相减的差。【输入】共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。【输出】一行,即所求的差。【输入样例】99999999999999999999999999999999999999999999999999【输出样例】9999999999999999999999990000...原创 2018-04-15 22:21:17 · 6492 阅读 · 2 评论 -
大整数加法(信息学奥赛一本通-T1168)
【题目描述】求两个不超过200位的非负整数的和。【输入】有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。【输出】一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。【输入样例】2222222222222222222233333333333333333333【输出样例】55555555555555555...原创 2018-04-15 22:20:28 · 8711 阅读 · 5 评论 -
求10000以内n的阶乘(信息学奥赛一本通-T1172)
【题目描述】求10000以内n的阶乘。【输入】只有一行输入,整数n(0≤n≤10000)。【输出】一行,即n!的值。【输入样例】4【输出样例】24【源程序】#include<iostream>#include<cstring>using namespace std;int a[100000];int main(){...原创 2018-04-15 22:19:22 · 10933 阅读 · 2 评论 -
Applese 涂颜色
【题目描述】精通程序设计的 Applese 叕写了一个游戏。在这个游戏中,有一个 n 行 m 列的方阵。现在它要为这个方阵涂上黑白两种颜色。规定左右相邻两格的颜色不能相同。请你帮它统计一下有多少种涂色的方法。由于答案很大,你需要将答案对10^9+7 取模。【输入描述】仅一行两个正整数 n, m,表示方阵的大小。1≤n,m≤10^100000【输出描述】输出一个正整数...原创 2019-02-02 15:01:14 · 332 阅读 · 0 评论 -
处女座的百日理财计划
【题目描述】处女座为了有更充足的资金和小姐姐一起玩耍,于是就放"高利贷"给小姐姐,一般小姐姐一周就会还钱,而处女座只要10%的利率,这样算下来,如果可以利滚利的话,1元钱经过1年(360天)可以变成51.43元呢,想起来就非常美滋滋哦!不过总是借钱给小姐姐并不是长远之策,处女座开始了自己的百日理财计划。处女座在第一天的早上可以获得1000元的启动资金。之后在每天的早上,他会回收借给别人的...原创 2019-01-31 22:34:54 · 233 阅读 · 0 评论 -
一半的一半(51Nod-2382)
题目输入n,牛牛想知道0.5的n次方的精确值。注意是精确值,也就是小数有多少位,就要输出多少位,不四舍五入。(当然也不输出多余的0)对于100%的数据,1 <= n <= 1000对于60%的数据,1 <= n <= 27对于30%的数据,1 <= n <= 4输入输入一行一个整数n。输出输出0.5的n次方的精确值。输入...原创 2019-04-26 10:59:54 · 473 阅读 · 0 评论 -
Fibonacci in the Pocket(ZOJ-4108)
Problem DescriptionDreamGrid has just found a Fibonacci sequence f1,f2,... and two integers a and b in his right pocket, where fk indicates the k-th element in the Fibonacci sequence.Please tell ...原创 2019-04-27 20:12:10 · 652 阅读 · 0 评论 -
初中的算术(51Nod-1873)
题目Noder现在上初三了,正在开始复习中考。他每天要计算型如 (a×a×a×⋯×a) n个a的式子。 其中 0.0<a<99.999,0<n<26虽然Noder会计算,但是老是算错,现在他想要你来写一个程序输出正确的结果,以便他核对。输入单组测试数据。第一行有一个实数a和一个整数n,中间用空格分开。 0.0 < a < 99.99...原创 2019-04-25 18:37:11 · 192 阅读 · 0 评论 -
国王游戏(洛谷-P1080)
题目描述恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n 位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。国王不希望某一个大臣获得...原创 2018-04-14 23:36:44 · 1158 阅读 · 0 评论 -
基础算法 —— 高精度计算 —— Java 大数类
【概述】在 C++ 中数据类型的长度最多能到 64 位,一旦超出这个位数,就要用数组进行模拟计算,即高精度算法而在 Java 中有两个类:BigInteger、BigDecimal 分别表示大整数类和大浮点数类,其理论上能表示无限大的数,只要计算机内存足够大。这两个类都是 Number 类的子类,但存放在 java.math.* 包中,因此每次使用必须在开头处引用该包。【常量】...原创 2019-05-31 22:19:08 · 559 阅读 · 0 评论 -
Resistors in Parallel (Gym-102028E)
Problem DescriptionIn this physics problem, what we are concerned about are only resistors. If you are poor at physics, do not worry, since solving this problem does not require you to have advance...原创 2019-08-24 12:43:35 · 768 阅读 · 0 评论 -
大整数的因子(信息学奥赛一本通-T1171)
【题目描述】已知正整数k满足2≤k≤9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k。【输入】一个非负整数c,c的位数≤30。【输出】若存在满足 c%k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开;若没有这样的k,则输出"none"。【输入样例】30【输出样例】2 3 5 6【源程序】#include&l...原创 2018-04-15 22:29:10 · 6091 阅读 · 2 评论 -
除以13(信息学奥赛一本通-T1175)
【题目描述】输入一个大于0的大整数N,长度不超过100位,要求输出其除以13得到的商和余数。【输入】一个大于0的大整数,长度不超过100位。【输出】两行,分别为整数除法得到的商和余数。【输入样例】2132104848488485【输出样例】1640080652683450【源程序】#include<iostream>#include...原创 2018-04-15 22:37:01 · 6720 阅读 · 2 评论 -
大整数乘法(信息学奥赛一本通-T1174)
【题目描述】求两个不超过200位的非负整数的积。【输入】有两行,每行是一个不超过200位的非负整数,没有多余的前导0。【输出】一行,即相乘后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。【输入样例】1234567890098765432100【输出样例】1219326311126352690000【源程序】#in...原创 2018-04-15 22:38:05 · 3958 阅读 · 1 评论 -
基础算法 —— 高精度计算 —— 高精度加法
【算法分析】输入两个数到两个变量中,然后用赋值语句求他们的和,输出。但是,我们知道,在C++中任何数据类型都有一定表示范围。当两个被加数很大时,上述算法显然不能求出精确解,因此寻求另外一种方法。在读小学时,我们做加法都采用竖式方法,这样,我们可以写出两个整数相加的算法。我们用数组a、b分别存储加数和被加数,用数组c存储结果。则上例有a[3]=8,a[2]=5,a[1]=6;b[...原创 2018-04-12 21:46:03 · 2267 阅读 · 0 评论 -
基础算法 —— 高精度计算
【概述】利用计算机进行数值计算,有时会遇到这样的问题:有些计算要求精度高,希望计算的尾数可达到几十甚至几百位,虽然计算机本身精度足够高,但受硬件限制,往往达不到实际问题所要求的精度,因此我们用程序设计的方法去实现这样的高精度计算。除 C++ 高精算法之外,还可以选用 Java 大数类来处理高精问题,而且由于 Python 没有数据类型的限制,因此也可用 Python 来解决高精问题。【...原创 2018-04-12 22:31:56 · 1770 阅读 · 0 评论 -
基础算法 —— 高精度计算 —— 高精度减法
【算法分析】类似加法,可以用竖式求减法。在做减法运算时,需要注意的是:被减数必须比减数大,同时需要处理错位以及前导0。【模版】#include<iostream>#include<cstring>#include<string>using namespace std;int main(){ char str1[256],str2[...原创 2018-04-13 11:58:35 · 1036 阅读 · 0 评论 -
基础算法 —— 高精度计算 —— 高精度乘法
【算法分析】类似加法,用竖式求乘法。在做乘法运算时,同样有进位,同时对每一位进行乘法运算时,必须进行错位相加。分析c数组下标变化规律,可以写出如下关系式:Ci=C'i+C''i+...由此可见,Ci与a[i]*b[j]的乘积有关,与上次的进位有关,还跟原Ci的值有关,分析下标规律,有:c[i+j-1]=a[i]*b[j]+x+c[i+j-1]; x=c[i+j...原创 2018-04-13 13:15:06 · 930 阅读 · 1 评论 -
高精度减法(洛谷-P2142)
题目描述高精度减法输入输出格式输入格式:两个整数a,b(第二个可能比第一个大)输出格式:结果(是负数要输出负号)输入输出样例输入样例#1:21输出样例#1:1源代码#include<iostream>#include<cstring>#include<string>using namespace ...原创 2018-04-12 22:44:47 · 726 阅读 · 0 评论 -
A*B Problem(洛谷-P1303)
题目描述求两数的积。输入输出格式输入格式:两行,两个数。输出格式:积输入输出样例输入样例#1:12输出样例#1:2源代码#include<iostream>#include<cstring>#include<string>using namespace std;char str1[2560],s...原创 2018-04-12 22:44:05 · 484 阅读 · 0 评论 -
B进制星球(洛谷-P1604)
题目描述话说有一天,小Z乘坐宇宙飞船,飞到一个美丽的星球。因为历史的原因,科技在这个美丽的星球上并不很发达,星球上人们普遍采用B(2<=B<=36)进制计数。星球上的人们用美味的食物招待了小Z,作为回报,小Z希望送一个能够完成B进制加法的计算器给他们。 现在小Z希望你可以帮助他,编写实现B进制加法的程序。输入输出格式输入格式:共3行第1行:一个十进制的整数,表示进制B...原创 2018-04-12 22:42:28 · 790 阅读 · 0 评论 -
A+B Problem(高精)(洛谷-P1601)
题目描述高精度加法,x相当于a+b problem,不用考虑负数。输入输出格式输入格式:分两行输入a,b<=10^500输出格式:输出只有一行,代表A+B的值输入输出样例输入样例#1:11输出样例#1:2源代码#include<iostream>#include<cstring>#include<s...原创 2018-04-12 22:40:59 · 1107 阅读 · 1 评论 -
高精度乘法(信息学奥赛一本通-T1307)
【题目描述】输入两个高精度正整数M和N(M和N均小于100位)。求这两个高精度数的积。【输入】输入两个高精度正整数M和N。【输出】求这两个高精度数的积。【输入样例】363【输出样例】108【源程序】#include<iostream> #include<cstring> #include<string>...原创 2018-04-15 13:28:06 · 10364 阅读 · 3 评论 -
高精除(信息学奥赛一本通-T1308)
【题目描述】高精除以高精,求它们的商和余数。【输入】输入两个低于300位的正整数。【输出】输出商和余数。【输入样例】123131231845757768789798764232456786432456787654324567142534675678686786786712313123187671417381783256784124141241414253467567...原创 2018-04-15 13:30:46 · 7836 阅读 · 3 评论 -
回文数(信息学奥赛一本通-T1309)
【题目描述】若一个数(首位不为零)从左向右读与从右向左读都是一样,我们就将其称之为回文数。例如:给定一个 10进制数 56,将 56加 65(即把56从右向左读),得到 121是一个回文数。又如,对于10进制数87:STEP1: 87+78= 165STEP2: 165+561= 726STEP3: 726+627=1353STEP4:1353+3531=4884在这里...原创 2018-04-15 22:18:34 · 5665 阅读 · 4 评论 -
阶乘和(信息学奥赛一本通-T1173)
【题目描述】用高精度计算出S=1!+2!+3!+…+n!(n≤50),其中“!”表示阶乘,例如:5!=5×4×3×2×1。输入正整数n,输出计算结果S。【输入】一个正整数n。【输出】计算结果S。【输入样例】5【输出样例】153【源程序】#include<iostream>#include<cstring>using ...原创 2018-04-16 22:30:49 · 6611 阅读 · 2 评论 -
Chilly Willy(CF-248B)
Problem DescriptionChilly Willy loves playing with numbers. He only knows prime numbers that are digits yet. These numbers are 2, 3, 5 and 7. But Willy grew rather bored of such numbers, so he came...原创 2019-08-12 09:55:26 · 306 阅读 · 0 评论