zoukankan      html  css  js  c++  java
  • HihoCoder1663双阶乘的末尾数字([Offer收割]编程练习赛40)(暴力||数学)

    时间限制:10000ms
    单点时限:1000ms
    内存限制:256MB

    描述

    给定正整数x和k,判断是否存在正整数1 ≤ y ≤ x使得x与y同奇偶且(x!!)/(y!!)的个位数字为k。

    其中x!! = x × (x-2) × …。

    如果存在这样的y,你需要输出最大的一个,如果不存在这样的y,你需要输出-1。

    输入

    第一行一个正整数T,表示组数。

    接下来T行,每行两个正整数x和k。

    对于30%的数据1 ≤ T ≤ 3, 1 ≤ x ≤ 30, 0 ≤ k ≤ 9

    对于70%的数据1 ≤ T ≤ 100, 1 ≤ x ≤ 1000, 0 ≤ k ≤ 9

    对于100%的数据1 ≤ T ≤ 1000, 1 ≤ x ≤ 1000000000000000000, 0 ≤ k ≤ 9

    输出

    对于每组数据,输出一个整数表示答案。

    样例输入
    2
    3 1
    7 6
    样例输出
    3
    -1
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<ctime>
    #include<cstdlib>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    
    int main()
    {
        long long ans,a,b,i,j,T,x,k,cnt;
        bool flag;
        scanf("%lld",&T);
        while(T--){
           scanf("%lld%lld",&x,&k);
           if(k==1) {
                printf("%lld
    ",x);
                continue;
           }
           ans=1;flag=false;cnt=0;
           for(i=x;i>0;i-=2){
                cnt++;
                if(cnt>100) break;
                if(ans==k) {
                    printf("%lld
    ",i);flag=true;
                    break;
                }
                ans=ans*i%10;
           }
           if(!flag) printf("-1
    ");
        } return 0;
    }
  • 相关阅读:
    shell快捷键
    通过调整tcp参数来防范DDOS攻击
    解决 nf_conntrack: table full, dropping packet 的几种思路
    Linux系统资源限制
    解决Out of socket memory问题
    wrk简介
    部分 TCP 参数简介
    P1706 全排列问题
    P1149 [NOIP2008 提高组] 火柴棒等式
    P1104 生日
  • 原文地址:https://www.cnblogs.com/hua-dong/p/8052494.html
Copyright © 2011-2022 走看看