zoukankan      html  css  js  c++  java
  • JAVA大数类练手

    今天突然看到了OJ上的大数类题目,由于学习了一点大数类的知识。果断水了6道题。。。。。。都是非常基础的。就当的练手的吧。

    学到的只是一些大数类的基本操作。以后多做点这样的题,争取熟练运用水大数题。。。

    大数阶乘

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=28

    代码如下:

    [java] view plain copy
     
    1. import java.io.*;  
    2. import java.math.BigInteger;  
    3. import java.util.*;  
    4.   
    5. public class Main  
    6. {  
    7.     public static void main(String args[])  
    8.     {  
    9.         Scanner cin = new Scanner(System.in);     
    10.         int n = cin.nextInt();  
    11.         BigInteger ans = BigInteger.ONE;  
    12.         for(int i = 1; i <= n; ++i)  
    13.             ans = ans.multiply(BigInteger.valueOf(i));  
    14.         System.out.println(ans);  
    15.     }  
    16. }  

    棋盘覆盖

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=45

    代码如下:

    [java] view plain copy
     
    1. import java.math.BigInteger;  
    2. import java.util.*;  
    3. import java.io.*;  
    4.   
    5. public class Main  
    6. {  
    7.     public static void main(String args[])  
    8.     {  
    9.         Scanner in = new Scanner(System.in);  
    10.         int test = in.nextInt();  
    11.         while(test-- > 0)  
    12.         {  
    13.             int n;  
    14.             n = in.nextInt();  
    15.             BigInteger a = new BigInteger("4");  
    16.             for(int i = 1; i < n; ++i)  
    17.                 a = a.multiply(BigInteger.valueOf(4));  
    18.             System.out.println(a.subtract(BigInteger.valueOf(1)).divide(BigInteger.valueOf(3)));  
    19.         }  
    20.     }  
    21. }  

    比较大小

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=73

    代码如下:

    [java] view plain copy
     
    1. import java.io.*;  
    2. import java.math.BigInteger;  
    3. import java.util.*;  
    4.   
    5. public class Main  
    6. {  
    7.     public static void main(String args[])  
    8.     {  
    9.         Scanner cin = new Scanner(System.in);     
    10.         while(cin.hasNext())  
    11.         {  
    12.             BigInteger a = cin.nextBigInteger();  
    13.             BigInteger b = cin.nextBigInteger();  
    14.             if(a.equals(BigInteger.ZERO) && b.equals(BigInteger.ZERO))  
    15.                 break;  
    16.             int flag = a.compareTo(b);  
    17.             if(flag == -1)  
    18.                 System.out.println("a<b");  
    19.             else if(flag == 0)  
    20.                 System.out.println("a==b");  
    21.             else  
    22.                 System.out.println("a>b");  
    23.         }  
    24.     }  
    25. }  

    大数加法

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=103

    代码如下:

    [java] view plain copy
     
    1. import java.math.BigInteger;  
    2. import java.util.*;  
    3. import java.io.*;  
    4.   
    5. public class Main  
    6. {  
    7.     public static void main(String args[])  
    8.     {  
    9.         Scanner in = new Scanner(System.in);  
    10.         int n = in.nextInt();         
    11.         for(int i = 1; i <= n; ++i)  
    12.         {  
    13.             BigInteger a = in.nextBigInteger();  
    14.             BigInteger b = in.nextBigInteger();  
    15.             BigInteger ans = a.add(b);  
    16.             System.out.println("Case " + i + ":");  
    17.             System.out.println(a + " + " + b + " = " +ans);  
    18.         }  
    19.     }  
    20. }  

    递推求值

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=114

    代码如下:

    [java] view plain copy
     
    1. import java.io.*;  
    2. import java.math.BigInteger;  
    3. import java.util.*;  
    4.   
    5. public class Main  
    6. {  
    7.     public static void main(String args[])  
    8.     {  
    9.         Scanner cin = new Scanner(System.in);     
    10.         BigInteger a[] = new BigInteger[100];  
    11.         while(cin.hasNext())  
    12.         {  
    13.             for(int i = 0; i <= 2; ++i)  
    14.                 a[i] = cin.nextBigInteger();  
    15.             for(int i = 3; i <= 99; ++i)  
    16.                 a[i] = a[i - 1].add(a[i - 2]).add(a[i - 3]);  
    17.             System.out.println(a[99]);  
    18.         }  
    19.     }  
    20. }  

    高精度幂

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=155

    代码如下:

    [java] view plain copy
     
    1. import java.io.*;  
    2. import java.math.BigDecimal;  
    3. import java.util.*;  
    4.   
    5. public class Main  
    6. {  
    7.     public static void main(String args[])  
    8.     {  
    9.         Scanner cin = new Scanner(System.in);     
    10.         while(cin.hasNext())  
    11.         {  
    12.             BigDecimal ans = cin.nextBigDecimal();  
    13.             int n = cin.nextInt();  
    14.             String res = ans.pow(n).stripTrailingZeros().toPlainString(); //整数去掉小数点和后面的0  
    15.             if(res.startsWith("0")) //去掉前导0  
    16.             {  
    17.                 res = res.substring(1);  
    18.             }  
    19.             System.out.println(res);  
    20.         }  
    21.     }  
    22. }  
  • 相关阅读:
    显示文件本地文件夹
    Select Dependencies选择依赖项
    搜索小技巧
    783. Minimum Distance Between BST Nodes BST节点之间的最小距离
    5. Longest Palindromic Substring 最长的回文子串
    12. Integer to Roman 整数转罗马数字
    3. Longest Substring Without Repeating Characters 最长的子串不重复字符
    539. Minimum Time Difference 最小时差
    43. Multiply Strings 字符串相乘
    445. Add Two Numbers II 两个数字相加2
  • 原文地址:https://www.cnblogs.com/beautiful-code/p/5296620.html
Copyright © 2011-2022 走看看