image.png


    1. package com.xy.recursion;
    2. public class conisdata {
    3. public static void main(String[] args) {
    4. int coins[] = {1,2,5};
    5. int[] subscriptdata = new int[10];
    6. int amount = 11;
    7. int end = amount;
    8. int j = 0;
    9. for (int i = coins.length-1; i >= 0; i--) {
    10. while (amount>0) {
    11. if ((amount - coins[i]) >= 0) {
    12. amount = amount - coins[i];
    13. if(amount >= 0) {
    14. subscriptdata[j] = i;
    15. j = j + 1;
    16. }
    17. }else {
    18. break;
    19. }
    20. }
    21. }
    22. if (amount == 0) {
    23. System.out.print(end+"=");
    24. System.out.print(coins[+subscriptdata[0]]);
    25. for (int i = 1; i < j; i++) {
    26. System.out.print("+"+coins[subscriptdata[i]]);
    27. }
    28. }else {
    29. System.out.println("-1");
    30. }
    31. }
    32. }

    测试示例1
    image.png
    测试示例2
    image.png


    本次代码花费时间1小时,还是顺利,然后看看变量的变化过程,经检验没有问题