笔试题收录:1
有1元硬币,2元硬币,4元硬币,64元硬币,这4种硬币 和面值1024的纸币。某人用这1024元纸币去买东西,最少能找零多少硬币?
思路:要想找零硬币量少,那就选面值大的。64元,4元,2元,1元。依次“兑换”。记住大面值的硬币,能换多少换多少。
假设花了a元,那么找零的就是1024-a元,把这1024-a 元换成硬币,
先换64的:(1024-a)/64
再把剩下的换4元的,也就是(1024-a)%4
然后换2元的:((1024-a)%64%4)/2
最后就是1元的:((1024-a)%64%4%2)/1
这样就能实现找零硬币数量最少啦。
代码如下:
Scanner scanner=new Scanner(System.in);
System.out.println(“请输入花费金额:”);
int a=scanner.nextInt();
int b=1024-a;
//找零,x: 1元硬币数 y:2元硬币数 j:4元硬币数 k:64元硬币数
int x=0;int y=0;int j=0;int k=0;
if (a<=1024&&a>=0){
k=b/64;
j=(b%64)/4;
y=(b%64%4)/2;
x=(b%64%4%2)/1;
System.out.println(“找零硬币数搭配最少为:”+“1元硬币”+x+“个”+“2元硬币”+y+“个”
+“4元硬币”+j+“个”+“64元硬币”+k+“个”);
}else{
System.out.println(“输入错误!”);
}