代码块C++例外
CodeBlocks C++ Exception
我的代码有问题:
#include<iostream>
#include<vector>
#include<algorithm>
#include<math.h>
using namespace std;
long long addV(int i) {
return pow(10,i);
}
int len;
void recurse(int n,long long &ways,int values[],int current=0,int p=0) {
if(p>len) return;
if(current>n) return;
if(current ==n) {
ways++;
return;
}
int cv = n-current;
cv/=values[p];
for(int i=0;i<=cv;i++) {
recurse(n,ways,values,current+values[p]*i,p+1);
}
}
int main() {
int n;
cin>>n;
long long ways=0;
int values[] ={1,2,3};
len = sizeof(values)/sizeof(int);
recurse(n,ways,values);
cout<<ways;
}
异常来自 (cv/=values[p];)线。当然,糟糕的代码块永远不会显示异常是什么。我敢肯定它很容易解决。
if(p>len)return;
事实上,您已经在p == len
时越过边界访问了.您需要返回一次p >= len
.
因为递归的结束条件是p > len
这意味着p
将在零到三(含)的范围内。如您所知,一个由三个条目组成的数组的索引范围从零到二。
相关文章:
- 将 ctypes 与 tesserac-ocr 一起使用的例外 TessPageIteratorBoundingBox.
- 为什么程序员同时使用 std::bad_alloc 和 std::exception.是否 std::例外 仅是不够的
- 继承 C++11 中的例外?
- C++ - 为什么这有很强的例外保证?
- 与 boost::locale 关于"ß"大写的例外行为混淆
- Chrome GN 例外已禁用
- 如何在 x64 上"stack oveflow"例外
- 使用 stod() 转换小数点后字母的字符串时没有例外
- 该标准是否说明了例外和不同调用约定的共存
- 例外:'Access violation reading location'
- 为什么复制省略是"好像"规则的一个例外
- 为什么我在此删除中有例外?
- 常量字符*是否有任何例外?
- Windows 并发运行时任务计划,但有例外
- 为什么 string::replace 在 C++11 中没有指定分配器的例外?
- 有什么东西阻止std::optional::value_or()有条件地不例外吗?
- MATLAB API用于使用MatgetDir的C例外:Matrix :: Serialize ::在内存位置内置
- 通过C函数调用扔C 例外
- Xcode会产生分割故障,而不是例外
- 安全地向DTOR抛出例外