首页 > 试题广场 >

用伪代码实现以下需求算法。 题目:

[问答题]
用伪代码实现以下需求算法。


题目:1分、2分、5角的硬币组成1角,共有多少种组合。


//weight 数组 硬币价值
//dp[i] 实现背包i价值方法个数
int main()
{
    int weight[] = {1, 2, 5};
    int dp[10] = {1};
    for(int i = 0; i < 3; i++)
        for(int j = weight[i]; j < 10; j++)
            dp[j] += dp[j - weight[i]];
    cout << "dp = " << dp[10] << endl;
}

发表于 2022-07-06 11:52:24 回复(0)
暴力枚举法:
count = 0
# 5分硬币最多2枚
for i in range(3):
    # 2分硬币最多(10-5*i)/2枚
    for j in range((10-5*i)//2 + 1):
        # 1分硬币最多10-5*i-2*j枚
        for k in range(10-5*i-2*j):
            if 5*i + 2*j + k == 10:
                count += 1
print(count)


发表于 2020-10-15 09:26:31 回复(0)
1分最多10个硬币,2分最多5个硬币,5角最多2个硬币。进行三层迭代,计算出所有结果等于1角的加一。
发表于 2020-09-14 17:25:50 回复(0)