2019ECNU机试06 发表于 2020-05-13 | 分类于 华师机试 | 评论数: | 热度: ℃ 本文字数: 4.1k | 阅读时长 ≈ 4 分钟 Code123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#pragma once#define _CRT_SECURE_NO_WARNINGS#include <vector>#include <iostream>#include <algorithm>using namespace std;//这里这个计算方法会存在误差,当找到mid需要进一步的缩小值的大小int cnt(int n) { int base = 5,sum=0; while (n/base!=0) { sum += n / base; base *= 5; } return sum;}int fun() { int k,n; scanf("%d", &k); int mid, temp, begin=1, end=2e8,latest; while (begin <= end) { mid = begin+(end-begin)/2; temp = cnt(mid); if (temp == k) { latest = mid; break; } if (temp>k) { latest = mid; //说明在左边 end = mid - 1; } else if(temp<k){ begin = mid + 1; } } //进一步缩小值的范围 while (cnt(latest-1)>=k) latest--; printf("%d\n", latest); return 0;} ----\(˙<>˙)/----赞赏一下吧~ 打赏 微信支付 支付宝 本文作者: wicherQAQ 本文链接: https://wicherqaq.github.io/2020/05/13/2019ECNU%E6%9C%BA%E8%AF%9506/ 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!