博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字节跳动之算法(二):找零
阅读量:3918 次
发布时间:2019-05-23

本文共 1539 字,大约阅读时间需要 5 分钟。

原题目:

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


解析:

              (5~10分钟左右的题目。这里给个思路,大家可以根据这个思路来进行微调。)因为题目的找零有局限性,这里不用做循环,直接进行计算即可。用一个sur作为剩余的金额,依次计算到零即可,题目限制金额为1024。所以把它当做一个程序内部定数进行计算就好了。


JAVA代码:

import java.util.Scanner;public class FindCorn {	 public static 	int one_m = 0;	 public static 	int two_m = 0;	 public static 	int sixteen_m = 0;	 public static 	int sixty_four = 0;	public static void main(String[] args) {		// TODO Auto-generated method stub		Scanner sc = new Scanner(System.in);		int thing = sc.nextInt();		if(thing>1024){			System.out.println("抱歉,物品钱已经大于1024!");		}		else if(thing<=0){			System.out.println("抱歉,输入不合法!");		}		else{			int n = 1024;//1024			System.out.println("共找回硬币总数:  " + findMoney(n,thing) + "枚硬币");			System.out.println("其中64元共:   " + sixty_four + "枚硬币");			System.out.println("其中16元共:   " + sixteen_m + "枚硬币");			System.out.println("其中2元共:   " + two_m + "枚硬币");			System.out.println("其中1元共:   " + one_m + "枚硬币");			}	}	public static int findMoney(int m,int t){//m是钱,thing是物品钱		int sur = m - t;//剩余钱		int last = 0;		if(sur == 0){			return 0;		}		else if(sur > 0){			sixty_four = sur/64;			sur = sur-sixty_four*64;//继续剩余			last = last + sixty_four;			if( sur!= 0){//如果不整除 64				sixteen_m = sur/16;				sur = sur - sixteen_m*16;				last = last + sixteen_m ;				if(sur!=0){//如果不整除16					two_m = sur/2;					sur = sur - two_m*2;					last = last + two_m ;					if(sur !=0){						one_m = sur/1;						last = last + one_m ;					}				}			}			return last;		}		return m;	}}

结果图:


 

转载地址:http://cctrn.baihongyu.com/

你可能感兴趣的文章
为什么人和人的差距这么大?
查看>>
ABP vNext 自动注入,暗藏天坑如斯
查看>>
ML.NET 推荐引擎中一类矩阵因子分解的缺陷
查看>>
Xamarin.Forms 5.0 来了
查看>>
4倍速!ML.NET Model Builder GPU 与 CPU 对比测试
查看>>
微软2020开源回顾:止不住的挨骂,停不下的贡献
查看>>
说说 RabbiMQ 的应答模式
查看>>
OpenTelemetry - 云原生下可观测性的新标准
查看>>
使用 ML.NET 实现峰值检测来排查异常
查看>>
dnSpy反编译、部署调试神器
查看>>
使用 Avalonia 开发 UOS 原生应用
查看>>
开放封闭在.NET中
查看>>
【One by One系列】IdentityServer4(二)使用Client Credentials保护API资源
查看>>
【One by One系列】IdentityServer4(三)使用用户名和密码
查看>>
2021技术人新展望
查看>>
开源项目barcodelib-C#条形码图像生成库
查看>>
晋升新一线的合肥,跨平台的.NET氛围究竟如何?
查看>>
2021年了,`IEnumerator`、`IEnumerable`接口还傻傻分不清楚?
查看>>
3个值得学习和练手的.net企业级开源项目,强烈推荐
查看>>
【One by One系列】IdentityServer4(四)授权码流程
查看>>