文章目录
- 一、题目
- 🔸题目描述
- 🔸输入输出
- 🔸样例1
- 🔸样例2
- 🔸样例3
- 二、代码参考
- 作者:KJ.JK
🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈
🍂个人博客首页: KJ.JK
💖系列专栏:华为OD机试真题(C++)
一、题目
🔸题目描述
3020年, 空间通信集团的员工人数突破20亿人,即将遇到现有工号不够用的窘境。
现在,请你负责调研新工号系统。继承历史传统,新的工号系统由小写英文字母(a-z) 和数字(0-9) 两部分构成。
新工号由一段英文字母开头,之后跟随一 段数字,比如"aaahw0001",“a12345”,“abcd1”,“a00”。
注意新工号不能全为字母或者数字,允许数字部分有前导0或者全为0。
但是过长的工号会增加同事们的记忆成本,现在给出新工号至少需要分配的人数X和新工号中字母的长度Y,求新工号中数字的最短长度Z。
🔸输入输出
输入
一行两个负整数X Y ,数字单个空格分隔
0<X <=2^50- 1
0<Y<=5
输出
输出新工号中数字的最短长度Z
🔸样例1
输入
260 1输出
1说明:
无
🔸样例2
输入
26输出
1说明:
数字长度不能为0
🔸样例3
输入
2600 1输出
2说明:
无
二、代码参考
#include <iostream>
#include <cmath>
using namespace std;int main() {long long num_people, len_letter;cin >> num_people >> len_letter;long long min_len_num = max(1LL, (long long) ceil(log10(num_people / pow(26, len_letter))));cout << min_len_num << endl;return 0;
}
作者:KJ.JK
文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习