ahxoss 2023-08-02 19:00 采纳率: 55.6%
浏览 6

我在代码中遇到了一些问题

我写了一段代码,但是输出不对,我实在不知道怎么修改,有哪位提点一下,谢谢!
题目内容是这样的:
有n个边长为1的正立方体,在一个宽为1的轨道上堆塔,但塔本身不能分离。例如下图所:n=1
时只有一种方案;n=2
时有2种方案(中图);

n=1,2,3
的情形
堆塔的规则为底层必须有支撑,右图的两种堆法是不合法的。

输入描述
一个整数n(n≤40)。

输出描述
第一行一个整数,表示总共有多少种不同的方案。
接下来k
行,堆成k
层(1≤k≤n)的方案数各是多少(具体格式参见样例)。

样例:输入 复制
4
输出 复制
8
Height=1 Kind=1
Height=2 Kind=4
Height=3 Kind=2
Height=4 Kind=1
**

以下是我的代码,包括输入输出:

#include <bits/stdc++.h>
using namespace std;
int countTowerSolutions(int n) {
    vector<int> dp(n+1,0);
    dp[0]=1;
    for (int i=1;i<=n; i++) {
        for (int j=1;j<=i;j++) {
            dp[i]+=dp[i-j];
        }
    }
    return dp[n];
}
int main() {
    int n;
    cin >> n;
    int totalSolutions = countTowerSolutions(n);
    cout << totalSolutions<<'\n';
    for (int k=1;k<=n;k++) {
        int kLayerSolutions=countTowerSolutions(k);
        cout<<"Height="<<k<<" Kind=" << kLayerSolutions << '\n';
    }
    return 0;
}

我看了我的代码,我找不出什么问题,但输出和样例不一致,有哪位帮忙看看,谢谢!
以下是我的输出:
8
Height=1 Kind=1
Height=2 Kind=2
Height=3 Kind=4
Height=4 Kind=8

  • 写回答

2条回答 默认 最新

  • 不良使 Python领域潜力新星 2023-08-02 20:16
    关注
    #include <iostream>
    #include <vector>
    using namespace std;
    
    int countTowerSolutions(int n) {
        vector<int> dp(n + 1, 0);
        dp[0] = 1;
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                dp[i] += dp[i - j];
            }
        }
        return dp[n];
    }
    
    int main() {
        int n;
        cin >> n;
        int totalSolutions = countTowerSolutions(n);
        cout << totalSolutions << '\n';
        for (int k = 1; k <= n; k++) {
            int kLayerSolutions = countTowerSolutions(n - k + 1); // 修改这里的计算
            cout << "Height=" << k << " Kind=" << kLayerSolutions << '\n';
        }
        return 0;
    }
    
    

    修改后的代码,看看有没有帮助,有帮助的可以采纳一下的

    评论

报告相同问题?

问题事件

  • 创建了问题 8月2日

悬赏问题

  • ¥15 远程访问linux主机超时
  • ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例
  • ¥15 CPU卡指令整合指令数据都在图片上
  • ¥15 火车票关联12306问题
  • ¥15 odoo17处理受托加工产品
  • ¥15 如何用MATLAB编码图三的积分
  • ¥15 圆孔衍射光强随孔径变化
  • ¥15 MacBook pro m3max上用vscode运行c语言没有反应
  • ¥15 ESP-PROG配置错误,ALL ONES
  • ¥15 结构功能耦合指标计算