题目描述:
有位客人来自异国,在该国使用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进制,故而在该国的进制下不可能出现幸运数字,故而返回0
代码
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
try{
int k = in.nextInt();//商品的价值(十进制)
int n = in.nextInt();//客人幸运字
int m = in.nextInt();//转换的进制
int count = 0;//k转m出现n的次数
int yu=0;
//k除于m的余数就是m进制的数,当余数等于n时则证明幸运数出现一次
do {
yu = k % m;
if (yu == n) {
count++;
}
k = k / m;
} while (k != 0);
System.out.println(count);
}catch (Exception e){
System.out.println(0);
}
}
}