题目描述:
有位客人来自异国,在该国使用m进制计数。该客人有个幸运数字n(n<m),每次购物时,其总是喜欢计算本次支付的花费(折算为异国的价格后)中存在多少幸运数字。问:当其购买一个在我国价值k的产品时,其中包含多少幸运数字?
输入描述:
第一行输入为 k,n,m。
其中:
k表示 该客人购买的物品价值(以十进制计算的价格)
n表示 该客人的幸运数字
m表示 该客人所在国度的采用的进制
输出描述:
输出幸运数字的个数,行末无空格。
补充说明:
当输入非法内容时,输出0
示例1
输入:
10 2 4
输出:
2
说明:
10用4进制表示时为22,同时,异国客人的幸运数字是2,故而此处输出为2,表示有2个幸运数字。
示例2
输入:
10 4 4
输出:
0
说明:
此时客人的幸运数字为4,但是由于该国最大为4进制,过故而在该国的进制之下不可能出现幸运数字,故而返回零。
JS参考解题:
function countLuckyNumbers(k, n, m) {
// 判断输入是否合法
if (n >= m) {
return 0;
}
let count = 0;
let baseM = k.toString(m); // 将十进制数 k 转换为 m 进制数
// 统计 m 进制数中幸运数字 n 出现的次数
for (let i = 0; i < baseM.length; i++) {
if (baseM[i] === n.toString()) {
count++;
}
}
return count;
}
// 测试示例
console.log(countLuckyNumbers(10, 2, 4));
console.log(countLuckyNumbers(10, 4, 4));