java - 将货币转换成所有可能的组合
问题描述
我知道我的问题是重复的,但我仍然无法理解其他答案在解释什么。下面是我的代码,我计算它以到达第一行,57 pennies + 0 dimes + 0 nickels + 0 quarters
我正在考虑运行一个循环,列出所有可能的便士、硬币、镍币、四分之一的组合。但是,我不知道怎么做。
public class Conversion{
public static void main(String[] args) {
int cents = 57;
int quarter = 25;
int dime = 10;
int nickel = 5;
int penny = 1;
int totalPennies = cents / penny;
cents %= penny;
int totalNickels = cents / nickel;
cents %= nickel;
int totalDimes = cents / dime;
cents %= dime;
int totalQuarters = cents / quarter;
cents %= quarter;
System.out.print(totalPennies + " pennies + ");
System.out.print(totalNickels + " nickels + ");
System.out.print(totalDimes + " dimes + ");
System.out.println(totalQuarters + " quarters");
}
}
解决方案
您的操作顺序是倒退的。
你要做的第一件事就是计算你有多少便士。由于便士的实际价值为 1,因此您可以拥有 57 便士并弥补 0.57 美元。这显然不是你想要完成的。
你想做的就是从你的最高面额算起,然后倒着走。这是一个示例。
// This should be the first operation
int totalQuarters = cents / quarter;
cents %= quarter;
我将重新排序其余部分作为练习留给读者,但是一旦成功重新排序,输出就会变得正确。
2 pennies + 1 nickels + 0 dimes + 2 quarters
推荐阅读
- datastax-astra - 数据在 Datastax Astra DB 中无组织地存储
- angular - 有条件地包装一个元素
- flutter - 如何从标头获取 Flutter Web 中的 cookie
- networkx - networkx keyerror 由于“长”格式
- bash - makefile 中的变量读取失败
- openstack - openstack 错误,无法建立到端点的连接
- r - 如何计算矩阵每一行中的一些固定值以及R中矩阵的所有可能对的两行的不同列
- angular-maps - 在Angular服务代码中将映射解析为数组
- python-3.x - python elasticsearch-dsl 返回特定键的所有唯一值
- java - springboot中如何从fcm获取通知的发送状态?