• 橙白时光 求极限


    Problem I: 求极限

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 42  Solved: 11
    [Submit][Status][Web Board][Creator:eetze]

    Description

           小 z 学了一学期的高数了,最近他被一道求极限的题目卡死了,请你帮帮他!给定两个数 a,c。1<=a,c<=1e18。求下列式子的值。结果可能很大,请输出答案模 1e9+7 后的值。

    Input


    第一行输入一个 T,T<=1000 样例个数。
    第二行输入 a,c。

    Output

    输出答案模 1e9+7 后的值。

    Sample Input

    2
    1 1
    1 2

    Sample Output

    500000005
    4
    分析:
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.StreamTokenizer;
    import java.util.Arrays;
    import java.util.PriorityQueue;
    import java.util.Scanner;
    
    public class Main {
        static long qpom(long x,long y){
            long res=1;
            while(y!=0) {
                if((y&1)==1)res=res*x;//%mod
                y >>= 1;
                x=x*x;//%mod
            }
            return res;//%mod
        }
        static StreamTokenizer cin = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
        static int nextInt() throws IOException {cin.nextToken();return (int)cin.nval;}
        static long nextLong() throws IOException {cin.nextToken();return (long)cin.nval;}
        //这里提交代码要注意输入数据的长度,由于是double转为long类型,虽然double和long都是64位的,
        //但是double强制转化会有数据超出和越界,记得要用自带输入流,不要用我给出的快读
        //https://blog.csdn.net/yangfangjit/article/details/72890779
        public static void main(String args[]) throws IOException {
            Scanner sc=new Scanner(System.in);
            int time=sc.nextInt();
            for(int n=0;n<time;++n) {
                long a=sc.nextLong();
                long c=sc.nextLong();
                long mod=1000000000+7;
                a=a%mod;
                c=c%mod;
                long xx=500000004%mod;
                long res=(((c*c)%mod*xx)%mod+(a*c)%mod)%mod;
                System.out.println(res);
                System.out.println(Long.MAX_VALUE);
                System.out.println(Double.MAX_VALUE);    
                System.out.println(Double.MIN_VALUE);    
            }
        }
    }
    这道题的方法使用的是逆元,在费马小定理中,a^p%p=a%p,那么a^(p-1)%p=1%p,这个题目的极限最后求出来是一个分数形式,那么分数mod一个极大数结果是什么呢?
    将等式左右各除a得到:a^(p-2)%p=(1/a)%p,结果就非常简单了。
    代码:

  • 相关阅读:
    JS中的this
    函数作用域
    全局作用域与变量的声明提前
    立即执行函数与For. . .in语句
    实参可以是任何值
    函数的参数和返回值
    JavaScript创建函数的三种方式
    JavaScript属性名和属性值
    十进制浮点数转换为二进制
    冰雹猜想或角谷定理
  • 原文地址:https://www.cnblogs.com/CHAHA123/p/10756682.html
Copyright © 2020-2023  润新知