http://hihocoder.com/problemset/problem/1663?sid=1252156
思路:双阶乘的除法可以转化为乘法
a!!/(a-2!!) = a
当a为偶数的时候 乘的尾数只有 8 6 4 2 0 也就是说最多五次后肯定会变成0
当a为奇数的时候 乘的尾数只有 7 5 3 2 1 最多五次后尾数一定会变成5
也就是利用这个思路直接搞,直接循环几次,如果得不到,那么肯定是得不到了
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); Long x,y; int t; t = cin.nextInt(); while((t--)>0){ x = cin.nextLong(); y = cin.nextLong(); if(y==1) System.out.println(x); else { int k = 1; for(int i = 0;i<10&&x>2*(i+1);i++){ k *= ((x-2*i)%10); k %= 10; if(k==y){ System.out.println(x-2*(i+1)); k = 100; break; } } if(k!=100) System.out.println(-1); } } } }
时间: 2024-10-19 03:31:04