前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >字节跳动在线笔试题--硬币问题

字节跳动在线笔试题--硬币问题

作者头像
伪君子
发布2019-05-13 17:25:15
3.8K0
发布2019-05-13 17:25:15
举报
文章被收录于专栏:伪君子的梦呓伪君子的梦呓

0 前言

这是大概一个月前做的字节跳动的在线笔试题,显然,我被否了。

为什么写这个呢,因为最近忙,没时间和精力写别的,只能把存货拿出来更新了。

1 题目

Z 国的货币系统包含面值 1 元、4 元、16 元、64 元共计 4 种硬币,以及面值 1024 元的纸币。 现在小 Y 使用 1024 元的纸币购买了一件价值为 N(0<N<=1024) 的商品,请问最少他会收到多少硬币?

输入描述:

一行,包含一个数N。

输出描述:

一行,包含一个数,表示最少收到的硬币数。

输入:

200

输出:

17

说明:

花 200,需要找零 824 块,找 12 个 64 元硬币,3 个 16 元硬币,2 个 4 元硬币即可。

备注:对于100%的数据,N(0<N<=1024)

2 Java 题解

先获取 N 的值,然后设总数 total 为 1024,1024 减去 N 就是找零 change。

change 除以64 就是 64 元硬币的数量,其余硬币的数量也可以依次算出。

代码语言:javascript
复制
import java.util.Scanner;
import static java.util.Arrays.sort;

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();  //整数 n
        int total=1024;  //一共 1024
        int change=total-n;  //找零

        int a=change/64;  //64 元硬币的数量
        int b=(change-(a*64))/16;  //16 元硬币的数量
        int c=(change-(a*64+b*16))/4;  //4 元硬币的数量
        int d=(change-(a*64+b*16+c*4))/1;  //1 元硬币的数量
        System.out.println(a+b+c+d);
    }
}

3 相关说明

题图:Photo by Vruyr Martirosyan on Unsplash

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 伪君子的梦呓 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0 前言
  • 1 题目
  • 2 Java 题解
  • 3 相关说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档