晓君c++ 2024-03-31 21:14 采纳率: 70%
浏览 18
已结题

把Python代码转换成C ++

把Python代码转换成C ++

n = int(input())
lol = list(map(int, input().split()))
links = list(map(int, input().split()))
dp = [0] * n
for i in range(n-1, -1, -1):
    if links[i] == i:
        dp[i] = lol[i]
    else:
        max_lol = 0
        for j in range(i+1, n):
            if links[j] == i:
                max_lol = max(max_lol, dp[j])
        dp[i] = lol[i] + max_lol
for i in range(n):
    print(dp[i])

  • 写回答

3条回答 默认 最新

  • 码农阿豪@新空间 优质创作者: Java、后端开发技术领域 2024-03-31 21:14
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题:将给定的Python代码转换成C ++代码。 解答: 以下是将给定的Python代码转换成C ++代码的示例:
    #include <iostream>
    #include <vector>
    #include <string>
    #include <sstream>
    using namespace std;
    int main() {
        int n;
        cin >> n;
        vector<int> lol(n);
        vector<int> links(n);
        for(int i=0; i<n; i++) {
            cin >> lol[i];
        }
        for(int i=0; i<n; i++) {
            cin >> links[i];
        }
        vector<int> dp(n, 0);
        for(int i=n-1; i>=0; i--) {
            if(links[i] == i) {
                dp[i] = lol[i];
            } else {
                int max_lol = 0;
                for(int j=i+1; j<n; j++) {
                    if(links[j] == i) {
                        max_lol = max(max_lol, dp[j]);
                    }
                }
                dp[i] = lol[i] + max_lol;
            }
        }
        for(int i=0; i<n; i++) {
            cout << dp[i] << endl;
        }
        return 0;
    }
    

    这个C ++代码使用了向量作为存储,并按照Python代码的方式进行了分割和转换。在Python中使用的内置函数在C ++中可能需要手动实现,例如使用 split() 函数分割输入。此外,C ++代码还需要显式地调用输入和输出函数。在 vector 中为每个元素分配空间时,需要提供一个默认值,这里使用了 0

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月8日
  • 已采纳回答 3月31日
  • 创建了问题 3月31日