欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > 工号不够用了怎么办

工号不够用了怎么办

2025/3/18 19:53:26 来源:https://blog.csdn.net/TangKenny/article/details/143496679  浏览:    关键词:工号不够用了怎么办

题目描述

3020年,空间通信集团的员工人数数量突破20亿,现有工号系统不够用的窘境。

现在,请你负责调研新工号系统。继承历史传统,新工号系统由小写英文字母(a-z)和数字(0-9)两部分构成。

新工号分一段英文字符开头,之后跟着一段数字,例如"aaaahw0001",“a12345”,“abcd1”,“a00”。

注意新工号数字不能全字母或者数字,允许数字部分有前导0或者全为0。

但是过长的工号会增加同事们的记忆成本,现给出新工号至少需要分配的人数 X X X 和新工号中字母的长度 Y Y Y,求新工号中数字的最短长度 Z Z Z

输入描述

一行两个非负整数 X X X Y Y Y,代表字母单个字母空间总数。

0 < = X < = 2 5 0 − 1 0 <= X <= 2^50 - 1 0<=X<=2501

0 < Y < = 5 0 < Y <= 5 0<Y<=5

输出描述

输出新工号中数字部分的最短长度。

示例1
输入:

260 1

输出:

1

示例2

输入:

26 1

输出:

1

说明:
数字长度不能为0

题解

字母为26 进制 , 数字为10进制,数字至少一位

不超过 2 6 Y ∗ 10 26^Y * 10 26Y10 的数结果都是 1 其他依次*10 直到超过

源码Java

public class StaffNo {static Input input;static {input = new Input("2600 1");}public static void main(String[] args) {String[] split = input.nextLine().split(" ");int count = Integer.parseInt(split[0]);int Y  = Integer.parseInt(split[1]);int a = 1;int baseA = 26;int baseB = 10;for (int i = 0; i < Y; i++) {a *= baseA;}a *= baseB;if (a >= count) {System.out.println(1);return;}int result = 1;while (a < count) {a *= 10;result++;}System.out.println(result);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词