蓝桥杯-【二分】求阶乘

 思路:对于有几个0,10一定会是5的整数倍,2的因子数一定比5的多,所以只要算5的个数即可,

 30%,每个n都去算

#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll check(ll n) {                //计算n!末尾有多少个0
    ll cnt = 0;
    while (n)  cnt += (n /= 5);  
    return cnt;
}
int main(){
    ll k;  cin >> k;
    for(ll n=5;;n+=5){          //n是5的倍数,它含有因子5
        ll cnt = check(n);      //cnt是n!的尾零数量
        if(cnt==k){ cout << n; break;}
        if(cnt>k) { cout <<-1; break;}
    }
    return 0;
}

100%,利用二分思想

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll check(ll n) {              //计算n!末尾有多少个0
    ll cnt = 0;
    while (n)  cnt += (n /= 5);
    return cnt;
}
int main() {
    ll k;  cin >> k;
    ll L = 0, R = 1e19;       //R的初值为一个极大的数
    while (L < R) {
        ll mid = (L + R) / 2;
        if (check(mid) >= k)   R = mid;     // mid!的尾零数量超过了k,说明mid大了
        else                   L = mid + 1; // mid小了
    }
    if (check(R) == k)  cout << R ;
    else                cout << -1;
    return 0;
}

相关推荐

  1. -【二分

    2024-04-09 18:56:02       13 阅读
  2. 备战12.

    2024-04-09 18:56:02       11 阅读
  3. 2023省赛:求和

    2024-04-09 18:56:02       17 阅读
  4. 3527 的和 Python

    2024-04-09 18:56:02       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-09 18:56:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-09 18:56:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-09 18:56:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-09 18:56:02       18 阅读

热门阅读

  1. 力扣经典150题第九题:跳跃游戏

    2024-04-09 18:56:02       17 阅读
  2. K8S Deployment HA

    2024-04-09 18:56:02       12 阅读
  3. 查找同一个进程显示在任务栏上的多个窗口

    2024-04-09 18:56:02       14 阅读
  4. Qt 翻译工具:使用 tr() 函数实现多语言支持

    2024-04-09 18:56:02       20 阅读
  5. Vue中Suspense组件详细介绍

    2024-04-09 18:56:02       12 阅读
  6. 特权账号怎么管?企业真的很为难!

    2024-04-09 18:56:02       13 阅读
  7. NIO与BIO

    2024-04-09 18:56:02       10 阅读
  8. 蓝桥杯 算法训练 藏匿的刺客

    2024-04-09 18:56:02       11 阅读
  9. MySQL 常见和不常见的所有查询语句

    2024-04-09 18:56:02       16 阅读