本文共 3989 字,大约阅读时间需要 13 分钟。
参考的博客,练习NYOJ的Java大数题目,主要是为了熟悉一下Java语言。(都快算抄袭了,,,)
Java中的运算符和常用方法的使用——
import java.math.BigInteger;import java.util.Scanner;public class Main{ public static void main(String []args){ Scanner in = new Scanner(System.in); int n = in.nextInt(); BigInteger ans = BigInteger.ONE; for(int i = 1;i <= n;i++) ans = ans.multiply(BigInteger.valueOf(i)); System.out.println(ans); }}
这个棋盘是正方形的,去掉一个格子以后,恰好可以用图2全部覆盖(这个的原因未知),所以棋盘的格子总数 4^k - 1 除以3 就是结果了。
即(4^k - 1) / 3
import java.math.BigInteger;import java.util.Scanner;public class Main{ public static void main(String []args){ Scanner in = new Scanner(System.in); int t = in.nextInt(),k; while(t-- > 0) { k = in.nextInt(); BigInteger ans = new BigInteger("4"); for(int i = 1;i <= k-1;i++) ans = ans.multiply(BigInteger.valueOf(4)); System.out.println(ans.subtract(BigInteger.valueOf(1)).divide(BigInteger.valueOf(3))); } }}
import java.math.BigInteger;import java.util.Scanner;public class Main{ public static void main(String []args){ Scanner in = new Scanner(System.in); while(in.hasNext()) { BigInteger a = in.nextBigInteger(); BigInteger b = in.nextBigInteger(); if(a.equals(BigInteger.ZERO) && b.equals(BigInteger.ZERO)) break; int flag = a.compareTo(b); if(flag == -1) System.out.println("a b"); else System.out.println("a==b"); } }}
import java.math.BigInteger;import java.util.Scanner;public class Main{ public static void main(String []args){ Scanner in = new Scanner(System.in); int t = in.nextInt(); for(int ca = 1;ca <= t;ca++) { BigInteger a = in.nextBigInteger(); BigInteger b = in.nextBigInteger(); BigInteger sum = a.add(b); System.out.println("Case " + ca + ":"); System.out.println(a+ " + " +b + " = " +sum); } }}
import java.math.BigInteger;import java.util.Scanner;public class Main{ public static void main(String []args){ Scanner in = new Scanner(System.in); BigInteger [] a = new BigInteger[105]; while(in.hasNext())//多组数据 { for(int i = 0;i < 3;i++) a[i] = in.nextBigInteger(); for(int i = 3;i <= 99;i++) a[i] = a[i-1].add(a[i-2]).add(a[i-3]); System.out.println(a[99]); } }}
import java.math.BigDecimal;import java.util.Scanner;public class Main{ public static void main(String []args){ Scanner in = new Scanner(System.in); while(in.hasNext()) { BigDecimal R = in.nextBigDecimal(); int n = in.nextInt(); String str = R.pow(n).stripTrailingZeros().toPlainString();//去掉小数点后的0 if(str.startsWith("0")) str = str.substring(1); System.out.println(str); } }}//Java帅呆了,自动补头文件啊//然而多个BigInteger的头
import java.math.BigDecimal;import java.util.Scanner;public class Main{ public static void main(String []args){ Scanner in = new Scanner(System.in); BigDecimal esp = new BigDecimal("0.0"); while(in.hasNext()) { BigDecimal a = in.nextBigDecimal(); BigDecimal b = in.nextBigDecimal(); String str = a.add(b).stripTrailingZeros().toPlainString();//去掉小数点后的0 BigDecimal sum = a.add(b); if(sum.compareTo(esp) == 0) System.out.println(0); else System.out.println(str); } }}
import java.math.BigDecimal;import java.util.Scanner;public class Main { public static void main(String [] args){ Scanner in = new Scanner(System.in); while(in.hasNext()) { BigDecimal a = in.nextBigDecimal(); BigDecimal b = in.nextBigDecimal(); BigDecimal c = a.subtract(b); String str = c.stripTrailingZeros().toPlainString();//去掉小数点后的0 if(str.startsWith("0")) System.out.println("YES"); else System.out.println("NO"); } }}
import java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String [] args){ Scanner in = new Scanner(System.in); BigInteger a,b,c; String s; while(in.hasNext()) { a = in.nextBigInteger(); s = in.next(); b = in.nextBigInteger(); if(s.charAt(0) == '/') c = a.divide(b); else c = a.remainder(b); System.out.println(c); } }}
转载地址:http://sqzgf.baihongyu.com/