美文网首页
今日头条2019年暑期实习第一批笔试题货币找零

今日头条2019年暑期实习第一批笔试题货币找零

作者: zhouwaiqiang | 来源:发表于2019-03-19 12:22 被阅读0次

题目描述

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

输入描述

一行,包含一个数N

输出描述

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

示例1输入:

200

示例1输出:

17

解题思路

1. 这道题属于典型的入门级动态规范,回顾一下动态规范三个条件,最优子结构,转移方程以及边界条件
2. 现在假设我们要求的结果是F(n),其中n为我们要找零的钱,根据钞票种类,只有1/4/16/64这四种,那么如果要F(n)最小,那么最优子结构就应该是F(n)=min{F(n-1, F(n-4), F(n-16), F(n-64)}+1,以此递推到边界为1或者2或者3或者4的时候,即可终止得到边界条件
3. 然后我们将递推反过来叠加式求解,可以声明一个数组为N+1(数组下标从0开始,将下标和金额对应),写入初始条件,依次往上叠加求解,就可以得到结果

解题代码

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int expense = sc.nextInt();
        int re = 1024-expense;
        if (re==0) {
            System.out.println(0);
            return;
        }
        if (re==1) {
            System.out.println(1);
            return;
        }
        if (re==2) {
            System.out.println(2);
            return;
        }
        if (re==3) {
            System.out.println(3);
            return;
        }
        if (re==4) {
            System.out.println(1);
            return;
        }
        int[] result = new int[re+1];
        result[0]=0;
        result[1]=1;
        result[2]=2;
        result[3]=3;
        result[4]=1;
        for(int i=5; i<=re; i++) {
            if(i=16 || i=64) result[i] = 1;
            else if(i>16 && i<64) result[i] = Math.min(Math.min(result[i-1],result[i-4]),result[i-16])+1;
            else if(i>64) result[i]=Math.min(Math.min(result[i-1], result[i-4]), Math.min(result[i-16], result[i-16]))+1;
            else result[i]=Math.min(result[i-1], result[i-4]);
        }
        system.out.println(result[re]);
    }
}

相关文章

  • 今日头条2019年暑期实习第一批笔试题货币找零

    题目描述 输入描述 输出描述 示例1输入: 示例1输出: 解题思路 解题代码

  • 今日头条 产品 2018暑期实习笔试

    ·推理计算题 请预估新闻资讯类app的日活跃用户的天花板 1、题目拆解 关键词:新闻资讯类app、用户、日活跃用户...

  • 大学生求职 | 提前提最值得去的暑期实习!

    关于实习的投递渠道之前介绍过 今天介绍一种特殊的暑期实习针对于大三研二的学生叫做提前批 字节跳动今日头条的母公司发...

  • 暑期实习笔试题汇总

    最近在找暑期实习,受专业大坑的影像,自己学到的很多专业的知识很多都用不上,因为想从事程序员的工作,所以最近在进行知...

  • 国内各大互联网公司Java工程师笔经面经

    系统复习后,常规笔试面试题目,还是有必要看下,毕竟校招也是一场“应试”。 原文链接 今天斩获今日头条 实习offe...

  • 今日头条笔试面试大全

    整理了一下今日头条往届笔试面试题,希望对大家有帮助: 来源:今日头条笔试面试圈>> 1、2018今日头条校招算法方...

  • 今日头条试题

    1.你如何理解P值,它的限制是什么。 P值是指原假设为真时所得到的更极端结果出现的概率。如果P值很小,说明这种情况...

  • 求职日记0327

    拖太晚 迟到了Neil大浩子 今日总结:①投了招行信用卡中心产品经理暑期实习②投富途产品经理暑期实习③整理简历内容...

  • 今日头条2017笔试题:出专辑

    你作为一名出道的歌手终于要出自己的第一份专辑了,你计划收录 n 首歌而且每首歌的长度都是 s 秒,每首歌必须完整地...

  • 2019产品暑期实习笔试题

    欢聚时代 60min 1. 为00后设计一个产品,简要说明产品定位,用户需求和主要功能 2. 请说明抖音和快手的区...

网友评论

      本文标题:今日头条2019年暑期实习第一批笔试题货币找零

      本文链接:https://www.haomeiwen.com/subject/hedgmqtx.html