赞
踩
2024华为OD机试题库-(A卷+B卷+C卷+D卷)-(JAVA、Python、C++)
2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++)
题目描述
有位客人来自异国,在该国使用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
考点
进制转换
解题思路
采用循环取商取余的方法,只要商不为0,就一直循环。每次循环取余数与幸运数字比较,相同则统计个数加1,商赋值给k继续循环。
- #include <bits/stdc++.h>
- using namespace std;
-
- int main() {
- int k,n,m;
- cin>>k>>n>>m;
- int ans=0;
- int quot,res;
- while(k>0) {
- res=k%m;
- if(res==n) {
- ans++;
- }
- k=k/m;
- }
- cout<<ans<<endl;
- system("pause");
- return 0;
- }
- import java.util.Scanner;
-
- public class Main {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- long k
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。