关于java大数的一些操作
来源:互联网 发布:消防知识知多少通讯稿 编辑:程序博客网 时间:2024/06/05 09:45
import java.io.*;import java.util.*;import java.math.BigInteger; //java大数头文件;public class Main{ public static void main(String args[]) { Scanner cin=new Scanner(System.in); //最先定义输入符为cin; int n=cin.nextInt(); //定义一个整数并输入; BigInteger a=cin.nextBigInteger(); //定义一个大数并输入;//注意括号; BigInteger b=cin.nextBigInteger(); while(n-->0) //循环n次,也可以用for循环; { BigInteger ans=BigInteger.ZERO; ans=a.add(b); //a+b; ans=a.substract(b); //a-b; ans=a.multiply(b); //a*b; ans=a.divide(b); //a/b; ans=a.mod(b); //a%b; //如果你想让a与一个常数进行操作,那么你要先对它进行变量化; BigInteger x=new BigInteger("4"); ans=a.mod(x); int flag=a.compareTo(b); //比较函数:flag==-1-->小于、flag==0-->等于、flag==1-->大于; } while(cin.hasNext()) //一直循环;//注意括号; { System.out.println(); //输出空行;输出函数,自动换行; System.out.println(a+"+"+b+"="+ans); //这里的加号代表连接; System.out.println(""); //输出函数,双引号内为要输出的字符串; } }}
例题:nyoj168 卡特兰数
代码:
package helloo;import java.io.*;import java.math.BigInteger;import java.math.BigDecimal;import java.util.*;public class helloo{public static void main(String args[]){BigInteger a[]=new BigInteger[110]; a[0]=new BigInteger("1"); a[1]=new BigInteger("1"); a[2]=new BigInteger("2"); a[3]=new BigInteger("5");for(int i=4;i<=100;i++){int x;x=4*i-2;BigInteger t=BigInteger.valueOf(x);a[i]=t.multiply(a[i-1]);x=i+1;t=BigInteger.valueOf(x);a[i]=a[i].divide(t);}Scanner cin=new Scanner(System.in);while(cin.hasNext()){int n=cin.nextInt();if(n==-1)break;System.out.println(a[n]);}}}java 上编译可以通过,不过提交时要修改一下 helloo--->Main;删除第一行;
java大数模板
/****多组大数相加****/链接:http://acm.hdu.edu.cn/showproblem.php?pid=1047代码:import java.io.*;import java.util.*;import java.math.BigInteger;public class Main{ public static void main(String args[]) { Scanner cin=new Scanner(System.in); int n=cin.nextInt(); for(int i=1; i<=n; i++) { BigInteger ans=BigInteger.ZERO; BigInteger m=cin.nextBigInteger(); while(cin.hasNext()) { if(m.equals(BigInteger.ZERO)) break; ans=ans.add(m); m=cin.nextBigInteger(); } System.out.println(ans); if(i!=n) System.out.println(); } }}
/****大数取余****/链接:http://acm.hdu.edu.cn/showproblem.php?pid=1212import java.io.*;import java.util.*;import java.math.BigInteger;public class Main{ public static void main(String args[]) { Scanner cin=new Scanner(System.in); while(cin.hasNext()) { BigInteger a=cin.nextBigInteger(); BigInteger b=cin.nextBigInteger(); BigInteger ans=a.mod(b); System.out.println(ans); } }}
/****Chinese Girls' Amusement****/链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1313代码:import java.io.*;import java.util.*;import java.math.BigInteger;public class Main{ public static void main(String args[]) { Scanner cin=new Scanner(System.in); while(cin.hasNext()) { BigInteger x=new BigInteger("1"); BigInteger y=new BigInteger("2"); int n=cin.nextInt(); while(n-->0) { BigInteger m=cin.nextBigInteger(); if(m.mod(y).equals(BigInteger.ZERO)) { m=m.divide(y); if(m.mod(y).equals(BigInteger.ZERO)) { m=m.subtract(x); System.out.println(m); } else { m=m.subtract(y); System.out.println(m); } } else { m=m.subtract(x).divide(y); System.out.println(m); } if(n>0) System.out.println(); } } }}这一道题給坑惨了,这是一道找规律的题目,因为没有找到正确的规律;规律就是如果n为奇数,k=(n-1)/2; 偶数:再判n/2是奇数 k=n/2-2,偶数k=n/2-1;
加:hdu 1002A+B Problem II http://acm.hdu.edu.cn/showproblem.php?pid=1002
减:百炼2736 http://bailian.openjudge.cn/practice/2736/
乘:百炼2980 http://bailian.openjudge.cn/practice/2980/
除:百炼2737 http://bailian.openjudge.cn/practice/2737/
以下为转载:http://blog.csdn.net/niushuai666/article/details/6972991;
大数阶乘
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=28
代码如下:
import java.io.*;import java.math.BigInteger;import java.util.*; public class Main{ publicstatic void main(String args[]) { Scannercin = new Scanner(System.in); intn = cin.nextInt(); BigIntegerans = BigInteger.ONE; for(inti = 1; i <= n; ++i) ans= ans.multiply(BigInteger.valueOf(i)); System.out.println(ans); }}
棋盘覆盖
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=45
代码如下:
import java.math.BigInteger;import java.util.*;import java.io.*; public class Main{ publicstatic void main(String args[]) { Scannerin = new Scanner(System.in); inttest = in.nextInt(); while(test--> 0) { intn; n= in.nextInt(); BigIntegera = new BigInteger("4"); for(inti = 1; i < n; ++i) a= a.multiply(BigInteger.valueOf(4)); System.out.println(a.subtract(BigInteger.valueOf(1)).divide(BigInteger.valueOf(3))); } }}
比较大小
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=73
代码如下:
import java.io.*;import java.math.BigInteger;import java.util.*; public class Main{ publicstatic void main(String args[]) { Scannercin = new Scanner(System.in); while(cin.hasNext()) { BigIntegera = cin.nextBigInteger(); BigIntegerb = cin.nextBigInteger(); if(a.equals(BigInteger.ZERO)&& b.equals(BigInteger.ZERO)) break; intflag = a.compareTo(b); if(flag== -1) System.out.println("a<b"); elseif(flag == 0) System.out.println("a==b"); else System.out.println("a>b"); } }}
大数加法
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=103
代码如下:
import java.math.BigInteger;import java.util.*;import java.io.*; public class Main{ publicstatic void main(String args[]) { Scannerin = new Scanner(System.in); intn = in.nextInt(); for(inti = 1; i <= n; ++i) { BigIntegera = in.nextBigInteger(); BigIntegerb = in.nextBigInteger(); BigIntegerans = a.add(b); System.out.println("Case" + i + ":"); System.out.println(a+ " + " + b + " = " +ans); } }}
递推求值
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=114
代码如下:
import java.io.*;import java.math.BigInteger;import java.util.*; public class Main{ publicstatic void main(String args[]) { Scannercin = new Scanner(System.in); BigIntegera[] = new BigInteger[100]; while(cin.hasNext()) { for(inti = 0; i <= 2; ++i) a[i]= cin.nextBigInteger(); for(inti = 3; i <= 99; ++i) a[i]= a[i - 1].add(a[i - 2]).add(a[i - 3]); System.out.println(a[99]); } }}
高精度幂
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=155
代码如下:
import java.io.*;import java.math.BigDecimal;import java.util.*; public class Main{ publicstatic void main(String args[]) { Scannercin = new Scanner(System.in); while(cin.hasNext()) { BigDecimalans = cin.nextBigDecimal(); intn = cin.nextInt(); Stringres = ans.pow(n).stripTrailingZeros().toPlainString(); //整数去掉小数点和后面的0 if(res.startsWith("0"))//去掉前导0 { res= res.substring(1); } System.out.println(res); } }}
- 关于java大数的一些操作
- 在ACM中Java关于大数的一些相关操作
- 在ACM中Java关于大数的一些相关操作
- java 关于大数的一些问题
- 关于大数的操作!!
- 关于大数的操作
- JAVA关于Date操作的一些代码
- 【转】 Java大数的一些整理体会
- 【转】 Java大数的一些整理体会
- 【转】 Java大数的一些整理体会
- 转 java大数的一些例题
- Java中对大数的操作
- Java关于大数处理的类
- 关于Java(jxl)操作Excel一些设置的问题。。。。
- java 关于封装jdbc操作接口的一些做法
- java中关于时间的一些常规操作
- 黑马程序员-java中关于文件的一些基本操作
- 关于java时间与日期的一些操作
- iOS-Core-Animation-Advanced-Techniques(一)
- leetcode 492. Construct the Rectangle(easy)
- 好生意还是好故事,这或是快递最后100米的真相
- RTSP 数据包实例分析
- thinkphp上传图片并批量生成不同尺寸缩略图
- 关于java大数的一些操作
- JAVA第一周,BJT和UTC的转换
- C++实验4-输出星号图
- JXL读取xls的简单示例
- 做了这么多年的实验,真的搞清楚内标法与外标法了吗
- GitHub 入门(中文教程)
- 1602液晶动态显示
- LANP环境搭建(PHP7)
- c++实验4