为什么这个循环是无限运行的
Why is this loop running infinitely?
#include <bits/stdc++.h>
using namespace std;
void BookAllocation(vector<int> &v, int n) {
int Sum = 0, sum = 0, k = 1;
vector MX(k);
for (int i = 0; i < n - 1; i++) {
sum += v[i];
for (int j = i + 1; j < n; i++) {
Sum += v[j];
}
k = max(Sum, sum);
MX.push_back(k);
k = 0;
Sum = 0;
}
int size = MX.size();
int Ans;
for (int i = 0; i < size; i++) {
Ans = min(MX[i], Ans);
}
cout << Ans;
}
int main() {
int n = 4;
vector v(n);
for (int i = 0; i < n; i++) {
cin >> v[i];
}
BookAllocation(v, n); // i'm just doing some book allocation question from leet code
return 0;
}
您的程序将永远不会因为这个循环而结束:
for (int j = i + 1; j < n; i++) {
Sum += v[j];
}
如果第一次为真,则CCD_ 1和CCD_。如此循环。
也许你想要:
for (int j = i + 1; j < n; ++j) {
Sum += v[j];
}
请尝试此
#include <iostream>
#include <vector>
void BookAllocation(std::vector<int> &v, int n) {
int Sum = 0, sum = 0, k = 1;
std:: vector<int> MX(k);
for (int i = 0; i < n - 1; i++) {
sum += v.at(i);
for (int j = i + 1; j < n; j++) {//notce j++ as @BO R mentioned
Sum += v.at(j);
}
k = max(Sum, sum);
MX.push_back(k);
k = 0;
Sum = 0;
}
int size = (int) MX.size(); // needs explicit cast because by default it returns uint
int Ans;
for (int i = 0; i < size; i++) {
Ans = min(MX.at(i), Ans);
}
std::cout << Ans;
}
int main() {
int n = 4;
std::vector<int> v(n);
for (int i = 0; i < n; i++) {
cin >> v.at(i);
}
BookAllocation(v, n); // i'm just doing some book allocation question from leet code
return 0;
}
相关文章:
- 循环无限运行C++解决骑士之旅问题
- 运行无限循环的最小二叉树问题
- 任何人都可以弄清楚这段代码如何显示运行错误?它打印无限时间 -1 以及正确答案
- 无限运行时间
- 作为无限循环运行
- 字母输入运行无限循环
- 插入无限循环运行的单向链表
- 使用 getline() 无限运行的匹配单词 c++ 程序
- 如何修复无限运行的嵌套时环
- 由于next_permute而运行无限循环
- C++无限依次运行两个函数(线程)
- boost::thread应该在无限循环中运行,并等待没有互斥锁的新输入
- 可执行文件在无限大小写(任何时间限制)下将运行多长时间
- 从C++应用程序运行批处理脚本,并检查它是否具有无限循环
- 代码在小输入时运行良好,但在大输入时就像一个无限循环
- 我认为做而正在进入无限循环.或数组.(运行时错误)
- 日历运行无限循环
- 终止一个在无限循环中运行的std::线程
- For循环在c++的发布版本(visual studio)中无限运行
- PHP exec和c++程序无限运行