
高精度
Lawliet_ZMZ
ACMERandNODER
展开
-
简单大数相加
#include #include #include using namespace std; #define N 1000 char s1[N]; char s2[N]; int main() { int k,i,j; int l1,l2; int a[N]={0}; int b[N]={0}; gets(s1); //getchar() //不用这个玩原创 2016-05-11 21:09:27 · 442 阅读 · 0 评论 -
hdu 1753大小数相加
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1753 最简小数是小于 1 的数的整数部分需要去掉? import java.math.BigInteger; import java.util.Scanner; import java.math.BigDecimal; public class Main { public static原创 2017-02-06 10:58:32 · 430 阅读 · 0 评论 -
Java BigDecimal与科学计数法的问题
BigDecimal是处理高精度的浮点数运算的常用的一个类 当需要将BigDecimal中保存的浮点数值打印出来,特别是在页面上显示的时候,就有可能遇到预想之外的科学技术法表示的问题。 一般直接使用 BigDecimal.toString()方法即可以完成浮点数的打印。 如: System.out.println( new BigDecimal("10000000000").toS转载 2017-01-27 21:24:45 · 2651 阅读 · 0 评论 -
Java大数处理_用法整理
Ⅰ基本函数: 1.valueOf(parament); 将参数转换为制定的类型 比如 int a=3; BigInteger b=BigInteger.valueOf(a); 则b=3; String s=”12345”; BigInteger c=BigInteger.valueOf(s); 则c=1234原创 2017-01-22 15:41:40 · 2699 阅读 · 0 评论 -
JAVA高精度1_大数相加_阶乘
第一道:http://acm.hdu.edu.cn/showproblem.php?pid=1002 最基础的一个大数问题,位数可以到达1000位,以前用C做的时候用字符串处理加翻转来做,现在弄Java的Biginteger类做的话就很简单了。 注意几个问题: 1.和NYoj的这个大数相加问题格式不一样,HDU的这个是每组数据一个空行,最后一组不空行,NYoj上的直接pri原创 2017-01-21 20:57:24 · 1222 阅读 · 0 评论 -
JAVA大数_棋盘覆盖
第一道: 传送门:NYOJ 45 棋盘覆盖 2^k*2^k=4^k,其实就是大数计算,-1后取3的倍数。问题本源出自《计算机算法设计与分析》的棋盘覆盖问题,原始解法是分治法,递推出公式f(k) = f(k - 1) * 4 + 1,f(1)=1,再化解下就是4^0 + 4^1 + 4^2 + ... + 4^(n-1)。有兴趣可以google原问题,附上一个不错的问题链接:棋盘覆盖 思原创 2017-01-25 23:38:09 · 361 阅读 · 0 评论 -
JAVA高精度3_比较大小
题目传送门http://acm.nyist.net/JudgeOnline/problem.php?pid=73 大数比较,用到Java的compareTo方法: java中的compareto方法,返回参与比较的前后两个字符串的asc码的差值,看下面一组代码 String a="a",b="b"; System.out.println(a.compareto.b); 则输原创 2017-01-26 23:56:50 · 655 阅读 · 0 评论 -
JAVA高精度_求高精度幂
首先是题目传送门: NYoj 155 求高精度幂 要想用Java轻快的水过这道题,要先了解下JAVA.math中的几个方法 1.Java.math.BigDecimal.toPlainString() 返回此BigDecimal的字符串表示形式不带指数字段。 例如来个小对比:函数 toPlainString() 和 toString() 对于 BigDecimal原创 2017-01-27 21:16:50 · 877 阅读 · 0 评论 -
HDU 2054 大数比较
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2054 A这个水题也没有什么意思,主要巩固前面Java大数类和一些方法的学习。 题目如果直接用Java.Biginteger.equals()方法的话会WA,在API说明里面,对于2.00,和2.0值相等,标度不等就不会匹配。 一个方法原创 2017-01-28 17:15:38 · 411 阅读 · 0 评论 -
JAVA高精度4_递推求值
第一道传送们:NYoj 113 某种序列 一开始迭代顺序弄反了,a2=a3,a1=a2,a0=a1......太无脑了...因为从0开始,100-3,循环计算97次 import java.math.BigInteger; import java.util.Scanner; class Main { public static void main(String[] ar原创 2017-01-27 14:08:35 · 516 阅读 · 0 评论 -
HDU_How Many Fibs求数列区间数目
题目传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1316 还是练练手,因为对Java本身都还不是太熟。这个题唯一的有意思的问题就是边界范围是10^100数量级,数组边界是多少呢? 规定fib(1),fib(2)是1,2,那么纵观这个数列 1,2,3,5,8,13 5个数加一个位 1,2,3,5,8,13,原创 2017-02-06 10:26:37 · 416 阅读 · 0 评论 -
POJ 1503 多个大数相加
#include #include #include using namespace std; int sum[1002]; char str[1000]; int main() { while(scanf("%s",str)&&strcmp(str,"0")) { int len = strlen(str); for(int i=0;i<l原创 2016-07-26 10:55:34 · 411 阅读 · 0 评论 -
POJ 1001 高精度乘法
必须去掉前导0和后导0,一个特殊数据是对000.00这样的输出0 #include #include using namespace std; int main() { string r; int n,dianwei; const int R_LEN=150;//存下的极限数位大小 short result[R_LEN],jieguo[R_LEN],chengsh原创 2016-07-26 09:16:09 · 600 阅读 · 0 评论 -
HDU 1002
#include #include #include using namespace std; int main() { int T; char s1[1010],s2[1010]; cin>>T; for(int q=1;q<=T;q++){ int k,i,j; int l1,l2; int a[1200]={0}; int b[120原创 2016-05-11 23:54:40 · 674 阅读 · 0 评论 -
剑指offer(十二,十三) 数值的整数次方,调整数组顺序使奇数位于偶数前面
1.数值的整数次方 时间限制:1秒 空间限制:32768K 题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 标准的快速幂。。。注意base为0 return 0,我用JS抛出错误在oj上错了 QAQ 还有就是负数的情况,变正,然后倒回来。 其实这个base是double类型,C++里面的话不能直接比较,需要写个原创 2018-02-01 00:39:17 · 236 阅读 · 0 评论