62,636
社区成员




public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int[] ans=new int[6];//数组 0到5 分别 代表 100 50 20.。。。。。。
int[] money={100,50,20,10,5,1};
int sum=scanner.nextInt();// 输入金额
for(int i=0;i<6;i++)//用贪心的思路 先能用100就都用100,不能用100就用50最佳,
{
ans[i]=(sum-sum%money[i])/money[i];
sum-=ans[i]*money[i];
System.out.printf("%d 需要 %d\n",money[i],ans[i]);
}
}
public static void main(String[] args) {
int[] values = {100, 50, 20, 10, 5, 1};
int input = 485;
int[] output =new int[values.length];
int tmp = input;
for(int i=0; i<values.length; i++){
output[i] = tmp / values[i];
tmp %= values[i];
if(tmp==0) break;
}
StringBuffer buffer = new StringBuffer(""+input+"元人民币,最少需要");
for(int i=0; i<values.length; i++){
int n = output[i];
if(n != 0){
buffer.append(n);
buffer.append("张");
buffer.append(values[i]);
buffer.append("元,");
}
}
String result = buffer.substring(0, buffer.length()-1);
System.out.println(result);
}
public static void foo(int amount) {
for (int x100 = 0; x100 * 100 < amount; ++x100) {
for (int x50 = 0; x50 * 50 <= amount; ++x50) {
for (int x20 = 0; x20 * 20 <= amount; ++x20) {
for (int x10 = 0; x10 * 10 <= amount; ++x10) {
for (int x5 = 0; x5 * 5 <= amount; ++x5) {
for (int x1 = 0; x1 <= amount; ++x1) {
if (x100 * 100 + x50 * 50 + x20 * 20 + x10 * 10 + x5 * 5 + x1 == amount) {
System.out.printf("100: %d, 50: %d, 20: %d, 10: %d, 5: %d, 1: %d\n", x100, x50, x20, x10, x5, x1);
}
}
}
}
}
}
}
}
2. 递归
优点:新增货币单位只需要修改 UNITS 数组
缺点:代码复杂
import java.util.LinkedList;
import java.util.List;
public class Main {
public static void main(String[] args) throws Exception {
calculate(36, 0, 0);
}
private static final int[] UNITS = {100, 50, 20, 10, 5, 1};
private static List<String> components = new LinkedList<String>();
public static void calculate(int target, int currentSum, int index) {
if (target == currentSum) {
System.out.println(components);
return;
}
if (index >= UNITS.length) {
return;
}
for (int s = index; s < UNITS.length; ++s) {
for (int i = 0; i <= (target - currentSum) / UNITS[s]; ++i) {
if (currentSum + UNITS[s] * i <= target) {
if (i != 0) {
components.add(UNITS[s] + " * " + i);
}
calculate(target, currentSum + UNITS[s] * i, s+1);
if (i != 0) {
components.remove(components.size() - 1);
}
}
}
}
}
}
输出:
[1 * 36]
[5 * 1, 1 * 31]
[5 * 2, 1 * 26]
[5 * 3, 1 * 21]
[5 * 4, 1 * 16]
[5 * 5, 1 * 11]
[5 * 6, 1 * 6]
[5 * 7, 1 * 1]
[1 * 36]
[10 * 1, 1 * 26]
[10 * 1, 5 * 1, 1 * 21]
[10 * 1, 5 * 2, 1 * 16]
[10 * 1, 5 * 3, 1 * 11]
[10 * 1, 5 * 4, 1 * 6]
[10 * 1, 5 * 5, 1 * 1]
[10 * 1, 1 * 26]
[10 * 2, 1 * 16]
[10 * 2, 5 * 1, 1 * 11]
[10 * 2, 5 * 2, 1 * 6]
[10 * 2, 5 * 3, 1 * 1]
[10 * 2, 1 * 16]
[10 * 3, 1 * 6]
[10 * 3, 5 * 1, 1 * 1]
[10 * 3, 1 * 6]
[1 * 36]
[5 * 1, 1 * 31]
[5 * 2, 1 * 26]
[5 * 3, 1 * 21]
[5 * 4, 1 * 16]
[5 * 5, 1 * 11]
[5 * 6, 1 * 6]
[5 * 7, 1 * 1]
[1 * 36]
[20 * 1, 1 * 16]
[20 * 1, 5 * 1, 1 * 11]
[20 * 1, 5 * 2, 1 * 6]
[20 * 1, 5 * 3, 1 * 1]
[20 * 1, 1 * 16]
[20 * 1, 10 * 1, 1 * 6]
[20 * 1, 10 * 1, 5 * 1, 1 * 1]
[20 * 1, 10 * 1, 1 * 6]
[20 * 1, 1 * 16]
[20 * 1, 5 * 1, 1 * 11]
[20 * 1, 5 * 2, 1 * 6]
[20 * 1, 5 * 3, 1 * 1]
[20 * 1, 1 * 16]
[1 * 36]
[5 * 1, 1 * 31]
[5 * 2, 1 * 26]
[5 * 3, 1 * 21]
[5 * 4, 1 * 16]
[5 * 5, 1 * 11]
[5 * 6, 1 * 6]
[5 * 7, 1 * 1]
[1 * 36]
[10 * 1, 1 * 26]
[10 * 1, 5 * 1, 1 * 21]
[10 * 1, 5 * 2, 1 * 16]
[10 * 1, 5 * 3, 1 * 11]
[10 * 1, 5 * 4, 1 * 6]
[10 * 1, 5 * 5, 1 * 1]
[10 * 1, 1 * 26]
[10 * 2, 1 * 16]
[10 * 2, 5 * 1, 1 * 11]
[10 * 2, 5 * 2, 1 * 6]
[10 * 2, 5 * 3, 1 * 1]
[10 * 2, 1 * 16]
[10 * 3, 1 * 6]
[10 * 3, 5 * 1, 1 * 1]
[10 * 3, 1 * 6]
[1 * 36]
[5 * 1, 1 * 31]
[5 * 2, 1 * 26]
[5 * 3, 1 * 21]
[5 * 4, 1 * 16]
[5 * 5, 1 * 11]
[5 * 6, 1 * 6]
[5 * 7, 1 * 1]
[1 * 36]
[1 * 36]
[5 * 1, 1 * 31]
[5 * 2, 1 * 26]
[5 * 3, 1 * 21]
[5 * 4, 1 * 16]
[5 * 5, 1 * 11]
[5 * 6, 1 * 6]
[5 * 7, 1 * 1]
[1 * 36]
[10 * 1, 1 * 26]
[10 * 1, 5 * 1, 1 * 21]
[10 * 1, 5 * 2, 1 * 16]
[10 * 1, 5 * 3, 1 * 11]
[10 * 1, 5 * 4, 1 * 6]
[10 * 1, 5 * 5, 1 * 1]
[10 * 1, 1 * 26]
[10 * 2, 1 * 16]
[10 * 2, 5 * 1, 1 * 11]
[10 * 2, 5 * 2, 1 * 6]
[10 * 2, 5 * 3, 1 * 1]
[10 * 2, 1 * 16]
[10 * 3, 1 * 6]
[10 * 3, 5 * 1, 1 * 1]
[10 * 3, 1 * 6]
[1 * 36]
[5 * 1, 1 * 31]
[5 * 2, 1 * 26]
[5 * 3, 1 * 21]
[5 * 4, 1 * 16]
[5 * 5, 1 * 11]
[5 * 6, 1 * 6]
[5 * 7, 1 * 1]
[1 * 36]
[20 * 1, 1 * 16]
[20 * 1, 5 * 1, 1 * 11]
[20 * 1, 5 * 2, 1 * 6]
[20 * 1, 5 * 3, 1 * 1]
[20 * 1, 1 * 16]
[20 * 1, 10 * 1, 1 * 6]
[20 * 1, 10 * 1, 5 * 1, 1 * 1]
[20 * 1, 10 * 1, 1 * 6]
[20 * 1, 1 * 16]
[20 * 1, 5 * 1, 1 * 11]
[20 * 1, 5 * 2, 1 * 6]
[20 * 1, 5 * 3, 1 * 1]
[20 * 1, 1 * 16]
[1 * 36]
[5 * 1, 1 * 31]
[5 * 2, 1 * 26]
[5 * 3, 1 * 21]
[5 * 4, 1 * 16]
[5 * 5, 1 * 11]
[5 * 6, 1 * 6]
[5 * 7, 1 * 1]
[1 * 36]
[10 * 1, 1 * 26]
[10 * 1, 5 * 1, 1 * 21]
[10 * 1, 5 * 2, 1 * 16]
[10 * 1, 5 * 3, 1 * 11]
[10 * 1, 5 * 4, 1 * 6]
[10 * 1, 5 * 5, 1 * 1]
[10 * 1, 1 * 26]
[10 * 2, 1 * 16]
[10 * 2, 5 * 1, 1 * 11]
[10 * 2, 5 * 2, 1 * 6]
[10 * 2, 5 * 3, 1 * 1]
[10 * 2, 1 * 16]
[10 * 3, 1 * 6]
[10 * 3, 5 * 1, 1 * 1]
[10 * 3, 1 * 6]
[1 * 36]
[5 * 1, 1 * 31]
[5 * 2, 1 * 26]
[5 * 3, 1 * 21]
[5 * 4, 1 * 16]
[5 * 5, 1 * 11]
[5 * 6, 1 * 6]
[5 * 7, 1 * 1]
[1 * 36]
[1 * 36]
[5 * 1, 1 * 31]
[5 * 2, 1 * 26]
[5 * 3, 1 * 21]
[5 * 4, 1 * 16]
[5 * 5, 1 * 11]
[5 * 6, 1 * 6]
[5 * 7, 1 * 1]
[1 * 36]
[10 * 1, 1 * 26]
[10 * 1, 5 * 1, 1 * 21]
[10 * 1, 5 * 2, 1 * 16]
[10 * 1, 5 * 3, 1 * 11]
[10 * 1, 5 * 4, 1 * 6]
[10 * 1, 5 * 5, 1 * 1]
[10 * 1, 1 * 26]
[10 * 2, 1 * 16]
[10 * 2, 5 * 1, 1 * 11]
[10 * 2, 5 * 2, 1 * 6]
[10 * 2, 5 * 3, 1 * 1]
[10 * 2, 1 * 16]
[10 * 3, 1 * 6]
[10 * 3, 5 * 1, 1 * 1]
[10 * 3, 1 * 6]
[1 * 36]
[5 * 1, 1 * 31]
[5 * 2, 1 * 26]
[5 * 3, 1 * 21]
[5 * 4, 1 * 16]
[5 * 5, 1 * 11]
[5 * 6, 1 * 6]
[5 * 7, 1 * 1]
[1 * 36]
[20 * 1, 1 * 16]
[20 * 1, 5 * 1, 1 * 11]
[20 * 1, 5 * 2, 1 * 6]
[20 * 1, 5 * 3, 1 * 1]
[20 * 1, 1 * 16]
[20 * 1, 10 * 1, 1 * 6]
[20 * 1, 10 * 1, 5 * 1, 1 * 1]
[20 * 1, 10 * 1, 1 * 6]
[20 * 1, 1 * 16]
[20 * 1, 5 * 1, 1 * 11]
[20 * 1, 5 * 2, 1 * 6]
[20 * 1, 5 * 3, 1 * 1]
[20 * 1, 1 * 16]
[1 * 36]
[5 * 1, 1 * 31]
[5 * 2, 1 * 26]
[5 * 3, 1 * 21]
[5 * 4, 1 * 16]
[5 * 5, 1 * 11]
[5 * 6, 1 * 6]
[5 * 7, 1 * 1]
[1 * 36]
[10 * 1, 1 * 26]
[10 * 1, 5 * 1, 1 * 21]
[10 * 1, 5 * 2, 1 * 16]
[10 * 1, 5 * 3, 1 * 11]
[10 * 1, 5 * 4, 1 * 6]
[10 * 1, 5 * 5, 1 * 1]
[10 * 1, 1 * 26]
[10 * 2, 1 * 16]
[10 * 2, 5 * 1, 1 * 11]
[10 * 2, 5 * 2, 1 * 6]
[10 * 2, 5 * 3, 1 * 1]
[10 * 2, 1 * 16]
[10 * 3, 1 * 6]
[10 * 3, 5 * 1, 1 * 1]
[10 * 3, 1 * 6]
[1 * 36]
[5 * 1, 1 * 31]
[5 * 2, 1 * 26]
[5 * 3, 1 * 21]
[5 * 4, 1 * 16]
[5 * 5, 1 * 11]
[5 * 6, 1 * 6]
[5 * 7, 1 * 1]
[1 * 36]
[1 * 36]
[5 * 1, 1 * 31]
[5 * 2, 1 * 26]
[5 * 3, 1 * 21]
[5 * 4, 1 * 16]
[5 * 5, 1 * 11]
[5 * 6, 1 * 6]
[5 * 7, 1 * 1]
[1 * 36]
[10 * 1, 1 * 26]
[10 * 1, 5 * 1, 1 * 21]
[10 * 1, 5 * 2, 1 * 16]
[10 * 1, 5 * 3, 1 * 11]
[10 * 1, 5 * 4, 1 * 6]
[10 * 1, 5 * 5, 1 * 1]
[10 * 1, 1 * 26]
[10 * 2, 1 * 16]
[10 * 2, 5 * 1, 1 * 11]
[10 * 2, 5 * 2, 1 * 6]
[10 * 2, 5 * 3, 1 * 1]
[10 * 2, 1 * 16]
[10 * 3, 1 * 6]
[10 * 3, 5 * 1, 1 * 1]
[10 * 3, 1 * 6]
[1 * 36]
[5 * 1, 1 * 31]
[5 * 2, 1 * 26]
[5 * 3, 1 * 21]
[5 * 4, 1 * 16]
[5 * 5, 1 * 11]
[5 * 6, 1 * 6]
[5 * 7, 1 * 1]
[1 * 36]
[20 * 1, 1 * 16]
[20 * 1, 5 * 1, 1 * 11]
[20 * 1, 5 * 2, 1 * 6]
[20 * 1, 5 * 3, 1 * 1]
[20 * 1, 1 * 16]
[20 * 1, 10 * 1, 1 * 6]
[20 * 1, 10 * 1, 5 * 1, 1 * 1]
[20 * 1, 10 * 1, 1 * 6]
[20 * 1, 1 * 16]
[20 * 1, 5 * 1, 1 * 11]
[20 * 1, 5 * 2, 1 * 6]
[20 * 1, 5 * 3, 1 * 1]
[20 * 1, 1 * 16]
[1 * 36]
[5 * 1, 1 * 31]
[5 * 2, 1 * 26]
[5 * 3, 1 * 21]
[5 * 4, 1 * 16]
[5 * 5, 1 * 11]
[5 * 6, 1 * 6]
[5 * 7, 1 * 1]
[1 * 36]
[10 * 1, 1 * 26]
[10 * 1, 5 * 1, 1 * 21]
[10 * 1, 5 * 2, 1 * 16]
[10 * 1, 5 * 3, 1 * 11]
[10 * 1, 5 * 4, 1 * 6]
[10 * 1, 5 * 5, 1 * 1]
[10 * 1, 1 * 26]
[10 * 2, 1 * 16]
[10 * 2, 5 * 1, 1 * 11]
[10 * 2, 5 * 2, 1 * 6]
[10 * 2, 5 * 3, 1 * 1]
[10 * 2, 1 * 16]
[10 * 3, 1 * 6]
[10 * 3, 5 * 1, 1 * 1]
[10 * 3, 1 * 6]
[1 * 36]
[5 * 1, 1 * 31]
[5 * 2, 1 * 26]
[5 * 3, 1 * 21]
[5 * 4, 1 * 16]
[5 * 5, 1 * 11]
[5 * 6, 1 * 6]
[5 * 7, 1 * 1]
[1 * 36]