橙白时光 求极限

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,结果就非常简单了。
代码:

原文地址:https://www.cnblogs.com/CHAHA123/p/10756682.html