自学内容网 自学内容网

AcWing 1023. 买书

解题思路

11.png

相关代码

import java.util.Scanner;

public class Main {

    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int a[] = {0,10,20,50,100};
        int f[][] = new int[a.length+1][n+1];
        f[0][0]=1;
        for(int i=1;i<a.length;i++){
            for(int j=0;j<=n;j++){
                for(int k=0;k*a[i]<=j;k++){
                //为什么f[i][j]=f[i-1][j]+f[i-1][j-a[i]]?
                //f[i][j]可以分成选0个,选1个,一直到选k个。
                    f[i][j]=f[i][j]+f[i-1][j-k*a[i]];
                }
            }
        }
        System.out.println(f[4][n]);

    }
}

原文地址:https://blog.csdn.net/weixin_55057111/article/details/136471342

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!