zoukankan      html  css  js  c++  java
  • 大数模板(Java)

    大数加法

    /*
    给出2个大整数A,B,计算A+B的结果。
    
    Input
    第1行:大数A
    第2行:大数B
    (A,B的长度 <= 10000 需注意:A B有可能为负数)
    
    Output
    输出A + B
    
    Input示例
    68932147586
    468711654886
    
    Output示例
    537643802472
    
    */
    import java.util.*;
    import java.io.*;
    import java.lang.String;
    import java.math.BigDecimal;
     
    public class pp
    {
        public static void main(String[] args)
        {
            String s1,s2;
            Scanner cin = new Scanner(System.in);        
            s1 = cin.next();
            s2 = cin.next();
            BigDecimal b1 = new BigDecimal(s1);
            BigDecimal b2 = new BigDecimal(s2);
            System.out.println(b1.add(b2));
            cin.close();
        }
    }
    大数加法-656ms/1s
    a=int(input())
    b=int(input())
    print(a+b)
    py2-78ms/1s

    大数乘法

    /*
    给出2个大整数A,B,计算A*B的结果。
    
    Input
    第1行:大数A
    第2行:大数B
    (A,B的长度 <= 1000,A,B >= 0)
    
    Output
    输出A * B
    
    Input示例
    123456
    234567
    
    Output示例
    28958703552
    
    */
    import java.math.BigInteger;
    import java.util.Scanner;
    
    public class pp
    {
        public static void main(String[] args)
        {
            Scanner in=new Scanner(System.in);
            BigInteger a,b;
            a=in.nextBigInteger();
            b=in.nextBigInteger();
            System.out.println(a.multiply(b));
        }
    }
    大数乘法-4515ms/6000
    A=int(raw_input())
    B=int(raw_input())
    print A*B
    py2-2578ms

    N的阶乘

    /*
    输入N求N的阶乘的准确值。
    
    Input
    输入N(1 <= N <= 10000)
    
    Output
    输出N的阶乘
    
    Input示例
    5
    Output示例
    120
    */
    import java.math.BigInteger;
    import java.util.Scanner;
    
    public class  pp{
        public static void main(String[] args) {
            Scanner in=new Scanner(System.in);
            BigInteger sum=BigInteger.ONE;
            int n;
            n=in.nextInt();
            for(int i=1;i<=n;i++)
                sum=sum.multiply(BigInteger.valueOf(i));
            System.out.println(sum);
        }
    }
    N的阶乘

    大数除法+取模

    /*
    给出2个大整数A,B,计算A / B和A Mod B的结果。
    
    Input
    第1行:大数A
    第2行:大数B
    (A,B的长度 <= 100000,A,B >= 0)
     
    Output
    第1行:A / B
    第2行:A Mod B (A % B)
     
    Input示例
    987654321
    1234
    
    Output示例
    800368
    209
    */
    //2750 ms/4s
    
    import java.math.BigInteger;
    import java.util.Scanner;
    
    public class pp{
        public static void main(String[] args) {
            Scanner in=new Scanner(System.in);
            BigInteger  a,b;
            a=in.nextBigInteger();
            b=in.nextBigInteger();
            System.out.println(a.divide(b));
            System.out.println(a.mod(b));
        }
    }
    大数除法+取模

    大数进制转换

    /*
    给出一个36进制的大数(0-9,A-Z),将其转为10进制并输出。
    
    Input
    输入:36进制的大数,每一位用0-9,A-Z来表示,A表示10,Z表示35。(A的长度 <= 100000)
    
    Output
    输出:该数的10进制表示
    
    Input示例
    1AZ
    
    Output示例
    1691
    */
    //3765 ms/3s
    import java.io.BufferedInputStream;
    import java.math.BigInteger;
    import java.util.Scanner;
    
    public class Main {
    
        
        static boolean checkeNumber(char a)
        {
            return a>='0'&&a<='9';
        }
        
        public static void main(String[] args) {
            Scanner cin=new Scanner(new BufferedInputStream(System.in));
            String str=cin.next();
            BigInteger b=new BigInteger(str,36);
    
            System.out.println(b);
            
        }
    
    }
    大数36->10进制

    大数开方

    package Demo;
    /*
    
    现在给你两个数 n 和 p ,让你求出 p的开 n 次方。
    输入
    每组数据包含两个数n和p。当n和p都为0时表示输入结束。(1<=n<=200,1<=p<=10^101)
    输出
    对于每个输出对用输出开方后的结果k(结果小于10^9)。
    
    样例输入
    2 16
    3 27
    7 4357186184021382204544
    
    样例输出
    4
    3
    1234
    //112ms/300
    */
    
    import java.util.Scanner;
        public class Demo{
            public static void main(String[] args){  
                Scanner input=new Scanner(System.in);  
                    int n=input.nextInt();  
                    double p=input.nextDouble();  
                    System.out.println(String.format("%.0f", Math.pow(p, 1.0/n)));  
                }  
            }  
        
    大数开方
  • 相关阅读:
    扩展Image组件,属性不显示
    unity ugui如何用scrollview展示多个不同的3d物体
    Unity 给模型添加子物体,跟随父物体移动和旋转时不同步问题
    Unity3D性能优化
    Vs2017安装不上个问题,愁了好久
    Time.timeScale 暂停游戏
    unity.3d 打开monodevelop无法调用命名空间问题
    Unity.3D中,两个界面各自脚本中的变量如何调用
    * 笔记标题及标签整体说明+md总结
    & 文件透传整理
  • 原文地址:https://www.cnblogs.com/Roni-i/p/7632009.html
Copyright © 2011-2022 走看看