AT_abc235_d.[ABC235D] Multiply and Rotate
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个正整数 a。黑板上写着一个十进制的数。
当黑板上当前写着的数为 x 时,高桥君可以进行以下任意一种操作,改变黑板上的数:
- 擦掉 x,并将 x 乘以 a 的结果以十进制写在黑板上。
- 将 x 视为字符串,把末尾的数字移动到字符串的开头。
但只有当 x≥10 且 x 不能被 10 整除时,才能进行此操作。
例如,当 a=2,x=123 时,高桥君可以进行以下任意一种操作:
- 擦掉 x,写上 x×a=123×2=246。
- 将 x 视为字符串,把
123的末尾数字3移到开头。黑板上的数会从 123 变为 312。
最开始,黑板上写着 1。请问最少需要多少次操作,才能将黑板上的数变为 N?如果无论如何都无法将黑板上的数变为 N,请输出 −1。
输入格式
输入以如下格式从标准输入读入。
a N
输出格式
请输出答案。
输入输出样例
输入#1
3 72
输出#1
4
输入#2
2 5
输出#2
-1
输入#3
2 611
输出#3
12
输入#4
2 767090
输出#4
111
说明/提示
限制条件
- 2≤a<106
- 2≤N<106
- 输入均为整数。
样例解释 1
通过如下操作,可以在 4 次操作内将黑板上的数从 1 变为 72:
- 执行第 1 种操作,黑板上的数变为 1→3。
- 执行第 1 种操作,黑板上的数变为 3→9。
- 执行第 1 种操作,黑板上的数变为 9→27。
- 执行第 2 种操作,黑板上的数变为 27→72。
无法在 3 次及以下操作内变为 72,因此答案为 4。
样例解释 2
无论如何操作,都无法将黑板上的数变为 5。
样例解释 3
通过合理选择操作,可以按如下顺序 1→2→4→8→16→32→64→46→92→29→58→116→611,共 12 次操作将黑板上的数变为 611,且这是最少次数。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?